根据校验和的算法,编写程序为给定数据计算校验和 1)以命令行形式运行: Checksum input_file 其中Checksum为程序名,input_file为输入数据文件名 2)输出内容:数据文件的校验和
时间: 2024-03-14 20:46:15 浏览: 38
以下是根据校验和算法编写的 Python 程序,可以通过命令行运行:
```python
import sys
def checksum(filename):
with open(filename, 'rb') as f:
data = f.read()
checksum = 0
for byte in data:
checksum += byte
checksum &= 0xffffffff # 保持在 32 位范围内
return checksum
if __name__ == '__main__':
if len(sys.argv) < 2:
print('Usage: Checksum input_file')
sys.exit(1)
filename = sys.argv[1]
print(hex(checksum(filename)))
```
程序中,`checksum` 函数接受一个文件名作为参数,计算该文件的校验和并返回。程序从文件中读取二进制数据,并对每个字节进行累加和计算,最后返回的结果是一个 32 位整数。在 `if __name__ == '__main__'` 分支中,程序从命令行参数中获取输入文件名,并输出计算得到的校验和,使用 `hex` 函数将结果转换为十六进制形式输出。
要运行这个程序,可以在命令行中输入以下命令:
```
python Checksum.py input_file
```
其中 `Checksum.py` 是程序文件名,`input_file` 是输入数据文件名。程序将输出计算得到的校验和,以十六进制形式表示。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)