二进制位1 + 2 + 4

时间:2012-04-05 08:55:39

标签: bit-manipulation bit

我收到了一位开发人员的电子邮件,他说:

  

您可能知道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 

2 个答案:

答案 0 :(得分:3)

这是小端符号(Wiki)。基本上,最不重要的位出现在左侧,不像大端符号(这是大多数人在谈论二进制时所想到的)。

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

答案 1 :(得分:2)

准备一些有趣的阅读材料:How bytes work

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