Python實(shí)現(xiàn):
with open('outFile', 'w') as f: # 打開文件,以寫入方式
nums = [] # 存儲(chǔ)輸入的10個(gè)整數(shù)
print("Please input 10 integers:")
for i in range(10):
num = int(input()) # 從鍵盤輸入一個(gè)整數(shù)
nums.append(num)
f.write(str(num) + '\\t') # 將整數(shù)以十進(jìn)制形式寫入文件
f.write(bin(num)[2:].zfill(32) + '\\n') # 將整數(shù)以二進(jìn)制形式寫入文件
注釋:bin()
函數(shù)將整數(shù)轉(zhuǎn)換為二進(jìn)制字符串,[2:]
表示去掉字符串前面的"0b",zfill(32)
表示在字符串前面填充0,使其長度為32。
C語言實(shí)現(xiàn):
#include
int main() {
int nums[10]; // 存儲(chǔ)輸入的10個(gè)整數(shù)
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個(gè)整數(shù)
fprintf(fp, "%d\\t", nums[i]); // 將整數(shù)以十進(jìn)制形式寫入文件
for (int j = 31; j >= 0; j--) { // 將整數(shù)以二進(jìn)制形式寫入文件
fprintf(fp, "%d", (nums[i] > > j) & 1);
}
fprintf(fp, "\\n"); // 換行
}
fclose(fp); // 關(guān)閉文件
return 0;
}
具體解釋如下:
for (int j = 31; j >= 0; j--)
:循環(huán)從 31 開始,到 0 結(jié)束,每次遞減 1,循環(huán)變量為 j。- 這里假設(shè)該整數(shù)是用 32 位二進(jìn)制表示的,因此需要從高位到低位依次讀取并寫入文件。
(nums[i] >> j) & 1
:將當(dāng)前整數(shù) nums[i] 右移 j 位,然后和二進(jìn)制數(shù) 1 進(jìn)行按位與操作,得到該整數(shù)在 j 位上的二進(jìn)制值。- 右移操作可以將該整數(shù)的二進(jìn)制表示從右往左移動(dòng) j 位 ,使得它的二進(jìn)制值在第 j 位變成了最低位,方便進(jìn)行按位與操作。
- 按位與操作可以將該整數(shù)在第 j 位上的二進(jìn)制值提取出來,因?yàn)橹挥性谠撐簧鲜?1 的時(shí)候才會(huì)產(chǎn)生運(yùn)算結(jié)果為 1,否則結(jié)果為 0。
fprintf(fp, "%d", (nums[i] >> j) & 1)
:將當(dāng)前整數(shù)在 j 位上的二進(jìn)制值格式化為整數(shù)類型,并寫入到文件中。- 這里使用了 C 語言的 fprintf() 函數(shù),它可以格式化輸出數(shù)據(jù)并寫入到文件中。
- %d 表示將整數(shù)類型格式化為十進(jìn)制整數(shù),并將其保存在文件中
-
C語言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141630 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86695 -
BIN文件
+關(guān)注
關(guān)注
0文章
27瀏覽量
8684
發(fā)布評(píng)論請(qǐng)先 登錄
十進(jìn)制和二進(jìn)制之間的轉(zhuǎn)換原理
visa如何向USB中輸入二進(jìn)制
【小梅哥FPGA進(jìn)階教程】第二章 二進(jìn)制轉(zhuǎn)BCD
如何理解二進(jìn)制運(yùn)算規(guī)則 二進(jìn)制是如何運(yùn)算的
二進(jìn)制

評(píng)論