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。- 这里假设该整数是用 32 位二进制表示的,因此需要从高位到低位依次读取并写入文件。
(nums[i] >> j) & 1
:将当前整数 nums[i] 右移 j 位,然后和二进制数 1 进行按位与操作,得到该整数在 j 位上的二进制值。- 右移操作可以将该整数的二进制表示从右往左移动 j 位 ,使得它的二进制值在第 j 位变成了最低位,方便进行按位与操作。
- 按位与操作可以将该整数在第 j 位上的二进制值提取出来,因为只有在该位上是 1 的时候才会产生运算结果为 1,否则结果为 0。
fprintf(fp, "%d", (nums[i] >> j) & 1)
:将当前整数在 j 位上的二进制值格式化为整数类型,并写入到文件中。- 这里使用了 C 语言的 fprintf() 函数,它可以格式化输出数据并写入到文件中。
- %d 表示将整数类型格式化为十进制整数,并将其保存在文件中
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C语言
+关注
关注
180文章
7576浏览量
134945 -
python
+关注
关注
53文章
4754浏览量
84168 -
BIN文件
+关注
关注
0文章
26浏览量
8238
发布评论请先 登录
相关推荐
二进制格雷码与自然二进制码的互换
都可读出一个固定的与位置相对应的数字码;抗干扰能力强,没用累积误差;电源切断后位置信息不会丢失,但分辨率是由二进制的位数决定的,根据不同的精度要求,可以选择不同的分辨率即位数。目前有10位、11位、12
发表于 03-08 14:16
如何理解二进制运算规则 二进制是如何运算的
二进制运算规则二进制的运算算术运算二进制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位进位);二进制的减法:0-0=0
发表于 12-11 17:49
什么是二进制计数器,二进制计数器原理是什么?
什么是二进制计数器,二进制计数器原理是什么?
计数器是数字系统中用得较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现
发表于 03-08 13:16
•3.1w次阅读
二进制电平,什么是二进制电平
二进制电平,什么是二进制电平
在二进制数字通信系统中,每个码元或每个符号只能是“1”和“0”两个状态之一。若将每个码元可能取的状态增
发表于 03-17 16:51
•2326次阅读
评论