0

如果我有一个表示为 1 和 0 的 x 位值,分别代表真和假。我如何将这些转换为 8 位字节?我不想知道如何将位数转换为字节数(x/8)。我想知道如何转换这样的东西:

10000010 为一个字节

或者

100000101000001 为浮点数

4

3 回答 3

1
bytes[byteIndex] |= (byte)(1 << (7-bitIndex));

参考:

如何将位转换为字节?

于 2011-05-21T00:48:42.727 回答
0

所以我猜你想1转换成1,10转换成2,11转换成3等等,1001011转换成1*2^0 + 1*2^1 + 0*2^2 + 1*2 ^3 + 0*2^4+ 0*2^5 + 1*2^6 = 75

编辑:例如使用 JavaScript:

function binarytodecimal(input,l)
                    {
                    var i=0;
                    var dec=0;
                    while (i<l)
                        {
                            var temp1 = parseInt(input.charAt(l-1-i));
                            dec = dec + temp1*Math.pow(2,i);
                            i++;
                        }
                    dec = dec+'';
                    return dec;
                    }
于 2011-05-21T00:49:22.230 回答
0

这个问题没有实际意义(没有更多信息)。位可以以多个顺序(字节序)表示,低位在前或最后。您需要有一个定义的字节序。一旦从单个字节转移到单词,字节序问题就变得更具挑战性,因为位的顺序可能与字节的顺序不同。

从整数到浮点数是另一个级别的复杂性。浮点数具有与位顺序完全不同的不同表示。

可移植代码将使用已定义的表示(网络顺序、printf 等)并且远离尝试手动打包位。

于 2011-05-21T00:57:05.213 回答