Byte 如何将位转换为字节?

Byte 如何将位转换为字节?,byte,bits,Byte,Bits,如果我有一个x位值,表示为1s和0s,分别表示true和false。如何将这些转换为8位字节?我不想知道如何将位数转换为字节数(x/8)。我想知道如何转换如下内容: 1000010到一个字节 或 1000001000001到浮点字节[byteIndex]|=(字节)(1所以我猜你想要 bytes[byteIndex] |= (byte)(1 << (7-bitIndex)); 1转换为1, 10转换为2, 11改为3, 等 1001011被转换为1*2^0+1*2^1+0*2^2+

如果我有一个x位值,表示为1s和0s,分别表示true和false。如何将这些转换为8位字节?我不想知道如何将位数转换为字节数(x/8)。我想知道如何转换如下内容:

1000010到一个字节


1000001000001到浮点

字节[byteIndex]|=(字节)(1所以我猜你想要
bytes[byteIndex] |= (byte)(1 << (7-bitIndex));
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;
                    }
函数binarytodecimal(输入,l)
{
var i=0;
var-dec=0;
而(i这个问题没有意义(没有更多信息)。位可以用多个顺序表示(endian),低阶位排在第一位或最后。您需要有一个定义的endian顺序。一旦从单个字节移动到单词,endian问题变得更具挑战性,因为位的顺序可能与字节的顺序不同

从整数到浮点数的转换是另一个复杂的层次。浮点数有不同的表示,这与位的顺序完全不同


可移植代码将使用定义的表示(网络顺序、printf等)不要试图手动打包位。

我指的是一种数学方法,而不是一种编程方法。如果您提供了一种编程解决方案,请给出一些解释——不管是大端还是小端,只会影响字节顺序。