十六进制的数怎么运算?1111111 0xffffffffcafebabeL + 0x0000000100000000L --------------------- 0x00000000cafebabeL 这里前面的f+0为什么等于f啊?

问题描述:

十六进制的数怎么运算?
1111111
0xffffffffcafebabeL
+ 0x0000000100000000L
---------------------
0x00000000cafebabeL
这里前面的f+0为什么等于f啊?

因为加数第九位是1,被加数第九位是F,F+1 变 0 并向高位(第十位)进1,接下来第十位又是加F,F+0和进上来的1 ,变 0 再向第十一位进1,直到最高位F+1 变 0 ,再向上进位1,最后进上的1,没地方存放,自动丢掉 -- 所谓的“溢出”处理.
所以最高的8个位是0.