字符“A”的ASCII码是0x41,若发送字符串“ABCDEFG”,采用8位的checksum校验,那应该发出什么字节流,校验字节是什么,给出详细过程
时间: 2024-03-23 17:39:16 浏览: 122
求键入的字符的ASCII码值
发送字符串“ABCDEFG”采用8位的checksum校验时,应该发出以下字节流:
```
0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x08
```
其中最后一个字节0x08是校验字节,它的值是字符串中所有字节的和(不包括校验字节)对256取余数的补码。下面是详细的计算过程:
1. 将字符串中的每个字符转换为对应的ASCII码,得到以下序列:
```
65 66 67 68 69 70 71
```
2. 将这些数字相加,得到总和:
```
65 + 66 + 67 + 68 + 69 + 70 + 71 = 456
```
3. 对256取余数,得到余数:
```
456 % 256 = 200
```
4. 将余数取补码,得到校验字节:
```
~200 = -201
```
由于采用8位的checksum校验,因此校验字节只能存储8位,因此需要将-201转换为8位二进制数。补码的计算方式是将原码取反再加1,因此:
```
-201的原码为10000001
其反码为11111110
其补码为11111111
```
因此校验字节为0xFF。但是由于校验字节是校验和的补码,因此实际上发送的字节是0x08,这个字节会在接收端进行校验,如果校验通过,则说明数据没有被篡改。
阅读全文