如果我有一个表示为 1 和 0 的 x 位值,分别代表真和假。我如何将这些转换为 8 位字节?我不想知道如何将位数转换为字节数(x/8)。我想知道如何转换这样的东西:
10000010 为一个字节
或者
100000101000001 为浮点数
所以我猜你想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;
}
这个问题没有实际意义(没有更多信息)。位可以以多个顺序(字节序)表示,低位在前或最后。您需要有一个定义的字节序。一旦从单个字节转移到单词,字节序问题就变得更具挑战性,因为位的顺序可能与字节的顺序不同。
从整数到浮点数是另一个级别的复杂性。浮点数具有与位顺序完全不同的不同表示。
可移植代码将使用已定义的表示(网络顺序、printf 等)并且远离尝试手动打包位。