电子说
Python实现:
with open('outFile', 'w') as f: # 打开文件,以写入方式
nums = [] # 存储输入的10个整数
print("Please input 10 integers:")
for i in range(10):
num = int(input()) # 从键盘输入一个整数
nums.append(num)
f.write(str(num) + '\\t') # 将整数以十进制形式写入文件
f.write(bin(num)[2:].zfill(32) + '\\n') # 将整数以二进制形式写入文件
注释:bin()
函数将整数转换为二进制字符串,[2:]
表示去掉字符串前面的"0b",zfill(32)
表示在字符串前面填充0,使其长度为32。
C语言实现:
#include
int main() {
int nums[10]; // 存储输入的10个整数
FILE *fp; // 文件指针
fp = fopen("outFile", "w"); // 打开文件,以写入方式
if (fp == NULL) { // 判断文件是否打开成功
printf("Failed to open file.\\n");
return 1;
}
printf("Please input 10 integers:\\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]); // 从键盘输入10个整数
fprintf(fp, "%d\\t", nums[i]); // 将整数以十进制形式写入文件
for (int j = 31; j >= 0; j--) { // 将整数以二进制形式写入文件
fprintf(fp, "%d", (nums[i] > > j) & 1);
}
fprintf(fp, "\\n"); // 换行
}
fclose(fp); // 关闭文件
return 0;
}
具体解释如下:
for (int j = 31; j >= 0; j--)
:循环从 31 开始,到 0 结束,每次递减 1,循环变量为 j。
(nums[i] >> j) & 1
:将当前整数 nums[i] 右移 j 位,然后和二进制数 1 进行按位与操作,得到该整数在 j 位上的二进制值。
fprintf(fp, "%d", (nums[i] >> j) & 1)
:将当前整数在 j 位上的二进制值格式化为整数类型,并写入到文件中。
全部0条评论
快来发表一下你的评论吧 !