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文章
7604瀏覽量
136714 -
python
+關注
關注
56文章
4793瀏覽量
84634 -
BIN文件
+關注
關注
0文章
26瀏覽量
8282
發布評論請先 登錄
相關推薦
如何理解二進制運算規則 二進制是如何運算的
二進制運算規則二進制的運算算術運算二進制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位進位);二進制的減法:0-0=0
發表于 12-11 17:49
二進制電平,什么是二進制電平
二進制電平,什么是二進制電平
在二進制數字通信系統中,每個碼元或每個符號只能是“1”和“0”兩個狀態之一。若將每個碼元可能取的狀態增
發表于 03-17 16:51
?2357次閱讀
二進制編碼器應用場景 二進制編碼器與模擬編碼器比較
限性。 二進制編碼器概述 二進制編碼器是一種將輸入信號轉換為二進制代碼的設備。它通常用于數字系統中,將模擬信號或非
評論