对于其他进制中的“小数”(分数位),令人惊讶的是它们与整数完全相同,但并不直观。
base 10
scinot 10e2 10e1 10e0 10e-1 10e-2 10e-3
weight 100.0 10.0 1.0 0.1 0.01 0.001
value 0 4 5 .2 5 0
base 2
scinot 2e6 2e5 2e4 2e3 2e2 2e1 2e0 2e-1 2e-2 2e-3
weight 64 32 16 8 4 2 1 .5 .25 .125
value 0 1 0 1 1 0 1 .0 1 0
如果我们从45.25开始,大于或等于32,因此我们加上一个二进制1,并减去32。
我们剩下13.25,小于16,所以我们添加一个二进制0。
我们剩下13.25,大于或等于8,所以我们加上一个二进制1,并减去8。
我们剩下05.25,大于或等于4,所以我们加上一个二进制1,并减去4。
我们剩下01.25,小于2,所以我们添加一个二进制0。
我们剩下01.25,大于或等于1,所以我们加上一个二进制1,并减去1。
用整数计算,我们会有零剩余,所以我们停止。但是:
我们剩下00.25,小于0.5,所以我们添加一个二进制0。
我们剩下00.25,大于或等于0.25,所以我们添加一个二进制1,并减去0.25。
现在我们得到了零,所以我们停止(或不停止,如果您想继续计算零)。
请注意,十进制中并非所有“易处理”的数字都能达到那个零停止点。0.1(十进制)转换为二进制,会无限重复:0.0001100110011001100110011... 但是,所有二进制中的“易处理”数字都将很好地转换为十进制。
您还可以使用分数(2.5)、无理数(pi)或甚至虚数(2i)基数进行相同的过程,但基数不能介于-1和1之间。