0

我有一封来自开发人员的电子邮件,他在其中说:

您可能知道 1110000000000000 表示 1+2+4

这几天我都联系不上他了。其他人可以解释这是怎么可能的吗?

数字似乎使用以下函数转换为二进制:

function toBinaryString(bitmask)
tvar2 = 0
tvar3 = 1
tvar1 = ""
do while tvar2 < 16 
    if (bitmask and tvar3) > 0 then
        tvar1 = tvar1 & "1"
    else
        tvar1 = tvar1 & "0"
    end if
    tvar3 = tvar3 * 2
    tvar2 = tvar2 + 1
loop
toBinaryString = tvar1
end function 
4

2 回答 2

3

这是小端符号(Wiki)。基本上最低有效位出现在左侧,这与大端表示法不同(这是大多数人在谈论二进制时所想到的)。

因此第一位表示 0^2,然后是 1^2、2^2 等(所以 1 + 2 + 4)。

于 2012-04-05T09:09:01.863 回答
2

准备一些有趣的阅读材料:字节如何工作

实际上您的开发人员不正确,二进制表示法中的 1110000000000000 是十进制表示法中的 57344。

于 2012-04-05T09:02:23.120 回答