一个字节的取值范围-128~127(原码、补码、反码)
做而论道_CS:
有人说:
-----------------
原因在于,使用补码可以将符号位和数值域统一处理;同时,加法和减法可以统一处理。
-----------------
原因在于 ... ,这句话,有毛病。
实际上,这些,并不是原因,
而是: “目的”,或者 “结果”!
补码的来源,是:舍弃进位。
舍弃了进位,正数就能代替负数。补码,就诞生了!
舍弃了进位,加法就能代替减法。硬件,就简化了。
所以,使用补码的目的,是:
可以将符号位和数值域统一处理;
加法和减法可以统一处理。
这么说,才对。
一个字节的取值范围-128~127(原码、补码、反码)
做而论道_CS:
显而易见的现象,也是有规律的。
=======【划重点】=======
求负数补数的公式:
代替负数的正数 (即补数) = 负数 + 周期。
-------------------
而零和正数,也可以这么求补数(码):
零和正数的补数 = 零和正数 + 周期。
===================
但是,正数加上周期,就出现了进位 1。
舍弃了进位,就只有:
零和正数的补数 = 零和正数。
即,零和正数的补数,就是它们自己。
例:-31 的 8 位补码是什么?
解:256-31 = 225 = 1110 0001。
完事!
补码,和原码反码,没有任何关系。
求补码,也不必绕道原码和反码、取反加一!
况且,-128 并没有原码和反码。
怎么 “取反加一”?
这方法,根本就无法应用!
一个字节的取值范围-128~127(原码、补码、反码)
做而论道_CS:
计算机中一个字节有 8 位。
范围:0000 0000 ~ 1111 1111。
进位:2^8 = 256。
这也就是:8 位二进制数的计数周期。
当你舍弃进位(256):
+255 (1111 1111),就是-1 了。
+254 (1111 1110),就是-2 了。
。。。
+128 (1000 0000),就是-128 了。
以上,就是计算机砖家发明的 “负数的补码”。
WireShark 无法抓取以太帧前序和FCS或出现IP报头校验和错误
aaaake:
Wireshark 4.4.2 可以看到fcs啊
WireShark 无法抓取以太帧前序和FCS或出现IP报头校验和错误
aaaake:
Wireshark 4.4.2 可以看到fcs啊