toolfree

二进位转十进位

在浏览器里把二进位转成十进位,采用任意精度运算,并显示各种暂存器宽度下的有号读法。

在你的浏览器中运行

请输入一个数字。

多长都精确

二进位字符串很快就会变得很长——一个 64 比特的值就是 64 个字元——而那个长度正是用一般数字做 的转换器开始返回近似值的地方。

这里用的是任意精度整数,200 位的二进位字符串也能精确换算。

0b 前缀可有可无,数字之间的空白或底线会被忽略,所以大家实际会写的分组形式—— 0b1010 10101010_1010——贴上就能用。

有号读法

一串二进位本身并没有说明暂存器有多宽、是不是有号的,而这两件事都会改变那些比特的意义。

11111111 当成无号字节是 255,当成有号的则是 −1。转换会把两者都列出来,在每一个 数值放得进去的宽度上,这样你就不必自己动手算二补数。

而那通常正是一开始要读二进位的理由:一个状态暂存器、一组权限遮罩,或某个最高位是符号位的 压缩栏位。

比特数的计算

显示的比特数是数值本身需要的比特数,不是任何容器的宽度。255 需要 8 比特,256 需要 9 比特。

当你要确认某个值塞不塞得进某个地方时,这个区别就有意义了。一个需要 33 比特的数字放不进 32 比特的栏位,不管它的十进位形式看起来如何。

没有任何上传

在这个页面里转换。