238得票19回答
为什么对于带符号数,使用二进制补码比符号-大小更好?

我只是好奇为什么要使用二进制的补码来表示-1:翻转位并加上1? -1用11111111(二进制补码)表示,而不是(对我来说更直观的)10000001,这是二进制1,第一个位作为负标志。 免责声明:我不依靠二进制算术来工作!

52得票5回答
Java继承的大小成本是什么?

在互联网上有很多文章试图通过实证估算特定JVM实现中java.lang.Object的开销。例如,我看到在某些JVM中,一个裸的Object的大小开销被估计为8个字节。 我想知道的是,extends关系的典型JVM实现是否在类继承层次结构的每个级别都会引入增量大小开销。换句话说,假设您有一个...

14得票7回答
在多种语言中,int((0.1+0.7)*10) = 7。如何避免这种情况发生?

最近我发现几种语言中存在一个bug/特性。我对它是如何引起的有一些基本了解(但我想要更详细的解释),但当我想到我在这些年里可能制造的所有bug时,问题是如何确定“嘿,这可能会导致一个荒谬的bug,我最好使用任意精度函数”,其他哪些语言也有这个bug(以及那些没有的,为什么)。此外,为什么0.1...

13得票11回答
布尔值true - 正1还是负1?

我正在设计一种编程语言,正在尝试决定true应该是0x01还是0xFF。显然,所有非零值都将转换为true,但我正在努力确定精确的内部表示方式。 对于每个选择,有哪些优缺点?

11得票1回答
SQL Server中datetime的内部表示是什么?

SQL Server(2000和2005版本,如果有区别)中datetime值的基础数据结构是什么?即到字节表示为止? 假定当您选择datetime列时获得的默认表示形式是特定于文化的值/易于更改。也就是说,我们看不到的某些基础结构被格式化为YYYY-MM-DD HH:MM: SS.mmm。...

8得票3回答
部分应用在运行时是如何表示的?

当我在Haskell中写类似于map (1+) list的代码时,(1+)的内部表示是什么?由于它是(+)的部分应用,因此参数1必须被保存在某个地方,但我无法理解这一点。有人能给我一个简短的解释吗?如何实现柯里化和部分应用?

7得票4回答
C++数组和指针的sizeof结果

在 x86_64 架构中,指针大小为 8 字节。我认为 sizeof(x) 应该返回 8 是有道理的。我知道一个 char 是一个字节,z 数组的大小是 5 个字节。那么为什么 sizeof(z) 不返回 8 呢? int* x = new int[10]; char z[5]; // R...