0

ある開発者から次のようなメールが届きました。

ご存じかもしれませんが、1110000000000000 は 1+2+4 を意味します。

彼とは数日連絡が取れません。他の誰かがそれがどのように可能かを説明できますか?

数値は、次の関数を使用して 2 進数に変換されているように見えます。

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

興味深い読み物を用意してください:バイトのしくみ

実はあなたの開発者は正しくありません.2進表記の1110000000000000は10進表記では57344です.

于 2012-04-05T09:02:23.120 に答える