奎克的藏经阁 · 原书印刷页

编码 隐匿在计算机软硬件背后的语言 · 第 66 页

PDF 物理页索引 82 · 编码隐匿在计算机软硬件背后的语言

书名
编码 隐匿在计算机软硬件背后的语言
作者
未记录
印刷页
66
PDF 物理页
82(从 0 开始)
章节
编码隐匿在计算机软硬件背后的语言
UUID
38270854-596f-4a26-8183-db8c968c6020
来源类型
original_book
页面 SHA-256
be898f21804e6e757a7eefd56eed3c12e8255e2b1df14841052102058ab8ce93

模板来进行转换:

×128 ×64 ×32 ×16 ×8 ×4 ×2 ×1

这个模板可以将一个数转换最大长度为8的二进制数,但是它很容易扩展。在使用模板的时候,将8位二进制数填入到上面一行的格子里,每个格子一位。做8个乘法运算,然后将结果填入到下面一行的8个小格子里。再将这8个格子中的数相加就会得到最终结果。下面就举例说明如何得到与二进制数10010110相等的十进制数。

×128 ×64 ×32 ×16 x8 x4 x2 x1

$$
[ 1 2 8 ] + [ 0 ] + [ 0 ] + [ 1 6 ] + [ 1 6 ] + [ 0 ] + [ 4 ] + [ 2 ] + [ 0 ] = [ 1 5 0 ]
$$

将十进制数转换成二进制数就没那么直接了。下面是一个能够帮你将0\~255范围内的十进制数转换为二进制数的模板。

$$
\pm 1 2 8 + 6 4 + 3 2 + 1 6 + 8 + 4 + 2 + 1 + 1
$$

$$
\square \square \square \square \square \square \square \square
$$

这个转换实际上比看上去要麻烦得多,因此一定要仔细地按照下面的指导来操作。将整个十进制数(小于或等于255)填入到上面一行最左端的格子中。用第一个除数(128)去除这个数。所得的商填入正下方的格子(左下角的格子),余数填入右边的格子(上面--行左数第二个格子)。用第一个余数再除以下一个除数64。依照模板的顺序用同样的方法继续进行下去。

要记住,每次求得的商只能是0或者1。如果被除数小于除数,商为0,余数就是被除数。如果被除数大于或等于除数,那么商为1,余数就是被除数减去除数所得之差。下面以150为例进行转换。

$$
+ 1 2 8 + 6 4 + 3 2 + 1 6 + 8 \neq 4 + 2 + 1 + 1 6
$$

$$
\boxed { ! } \boxed { \textrm { o } } \boxed { \textrm { o } } \boxed { ! } \boxed { \textrm { o } } \boxed { ! } \boxed { \textrm { u } } \boxed { \textrm { o } }
$$

如果需要对两个二进制数进行加法或乘法,直接运算可能会比转换成十进制再进行

编码隐匿在计算机软硬件背后的语言

66