caroly 27 天前

不将数字转换为十进制或者二进制。
(将执行十进制加减法所使用的方法改成以16为基数)

0x503C + 0x8 = 0x5044
8 加上十六进制 c 得到 4 并且进位 1。
0x503C - 0x40 = 0x4ffc
在第二个数位,3 减去 4 要从第三位借 1。因为第三位是 0 ,需要从第四位借 1。
0x503C + 64 = 0x507C
十进制 64 为 2 的 6 次方,等于十六进制 0x40。

caroly 28 天前

当值 x 是 2 的非负整数 n 次幂时,也就是 x= $2^n$, 我们很容易将 x 写成十六进制形式,只要记住 x 的二进制表示就是 1 后面跟 n 个 0。
十六进制数字 0 代表 4 个二进制 0。所以当 n 表示成 i+ 4j 的形式,其中 0<=i<=3,
我们可以把 x 写成开头的十六进制数字为 1(i=0),2(i=1),4(i=2),8(i=3),后面跟随着 j 个十六进制的 0。
例如,x= 2048= 2 的 11 次方,我们有 n= 11= 3+ 4* 2,从而得到十六进制表示 0x800。
x= 512= 2 的 9 次方,有 n= 9= 1+ 4* 2, 从而得到十六进制表示 0x200。
x= 524288= 2 的 19 次方,有 n= 19= 3+ 4* 4,从而得到十六进制表示 0x80000。

caroly 4 个月前

阅尽千帆终执手,此心安处是吾乡