0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從鍵盤輸入10個整數(shù),以二進(jìn)制形式輸出到“outFile”中

冬至子 ? 來源:風(fēng)景郵遞Yuan ? 作者:風(fēng)景郵遞Yuan ? 2023-06-07 11:28 ? 次閱讀

Python實現(xiàn):

with open('outFile', 'w') as f: # 打開文件,以寫入方式

nums = [] # 存儲輸入的10個整數(shù)

print("Please input 10 integers:")

for i in range(10):

    num = int(input()) # 從鍵盤輸入一個整數(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語言實現(xiàn):

#include

int main() {

int nums[10]; // 存儲輸入的10個整數(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個整數(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;

}

具體解釋如下:

  1. for (int j = 31; j >= 0; j--):循環(huán)從 31 開始,到 0 結(jié)束,每次遞減 1,循環(huán)變量為 j。
    • 這里假設(shè)該整數(shù)是用 32 位二進(jìn)制表示的,因此需要從高位到低位依次讀取并寫入文件。
  2. (nums[i] >> j) & 1:將當(dāng)前整數(shù) nums[i] 右移 j 位,然后和二進(jìn)制數(shù) 1 進(jìn)行按位與操作,得到該整數(shù)在 j 位上的二進(jìn)制值。
    • 右移操作可以將該整數(shù)的二進(jìn)制表示從右往左移動 j 位 ,使得它的二進(jìn)制值在第 j 位變成了最低位,方便進(jìn)行按位與操作。
    • 按位與操作可以將該整數(shù)在第 j 位上的二進(jìn)制值提取出來,因為只有在該位上是 1 的時候才會產(chǎn)生運算結(jié)果為 1,否則結(jié)果為 0。
  3. fprintf(fp, "%d", (nums[i] >> j) & 1):將當(dāng)前整數(shù)在 j 位上的二進(jìn)制值格式化為整數(shù)類型,并寫入到文件中。
    • 這里使用了 C 語言的 fprintf() 函數(shù),它可以格式化輸出數(shù)據(jù)并寫入到文件中。
    • %d 表示將整數(shù)類型格式化為十進(jìn)制整數(shù),并將其保存在文件中

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136839
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84690
  • BIN文件
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8291
收藏 人收藏

    評論

    相關(guān)推薦

    進(jìn)制二進(jìn)制之間的轉(zhuǎn)換原理

    進(jìn)制二進(jìn)制之間的轉(zhuǎn)換  既然一數(shù)可以用二進(jìn)制和十進(jìn)制兩種不同形式來表示,那么兩著之間就必然
    發(fā)表于 04-06 23:54

    visa如何向USB輸入二進(jìn)制

    我想在字符輸入輸入16位二進(jìn)制如:0101 0101 1111 0000,讓后將這個字符串二進(jìn)制
    發(fā)表于 08-12 10:46

    【小梅哥FPGA進(jìn)階教程】第二進(jìn)制轉(zhuǎn)BCD

    Decimal)也稱二進(jìn)碼十進(jìn)數(shù)或-十進(jìn)制代碼。用4位二進(jìn)制數(shù)來表示1位十進(jìn)制數(shù)的0~9這
    發(fā)表于 01-09 14:38

    如何理解二進(jìn)制運算規(guī)則 二進(jìn)制是如何運算的

    二進(jìn)制運算規(guī)則二進(jìn)制的運算算術(shù)運算二進(jìn)制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位進(jìn)位);二進(jìn)制的減法:0-0=0
    發(fā)表于 12-11 17:49

    二進(jìn)制

    二進(jìn)制   二進(jìn)制與十進(jìn)制的區(qū)別在于數(shù)碼的個數(shù)和進(jìn)位規(guī)律有很大的區(qū)別,顧名思義,二進(jìn)制的計數(shù)規(guī)律為逢二進(jìn)一,是以2為基數(shù)的計數(shù)體制。
    發(fā)表于 04-06 23:48 ?8200次閱讀
    <b class='flag-5'>二進(jìn)制</b>

    二進(jìn)制編碼和二進(jìn)制數(shù)據(jù)

    二進(jìn)制編碼和二進(jìn)制數(shù)據(jù)   二進(jìn)制編碼是計算機(jī)內(nèi)使用最多的碼制,它只使用兩基本符號"0"和"1",并且通過由這兩符號組成的
    發(fā)表于 10-13 16:22 ?4790次閱讀

    二進(jìn)制電平,什么是二進(jìn)制電平

    二進(jìn)制電平,什么是二進(jìn)制電平 在二進(jìn)制數(shù)字通信系統(tǒng),每個碼元或每個符號只能是“1”和“0”兩狀態(tài)之一。若將每個碼元可能取的狀態(tài)增
    發(fā)表于 03-17 16:51 ?2359次閱讀

    本的二進(jìn)制加法/減法器,本的二進(jìn)制加法/減法器原理

    本的二進(jìn)制加法/減法器,本的二進(jìn)制加法/減法器原理   兩二進(jìn)制數(shù)字Ai,Bi和一進(jìn)位輸入
    發(fā)表于 04-13 11:11 ?5272次閱讀

    二進(jìn)制與十進(jìn)制數(shù)對照顯示實驗,十進(jìn)制二進(jìn)制對照

    二一十進(jìn)制譯碼驅(qū)動集成電路,可以把輸入二進(jìn)制碼轉(zhuǎn)換成十進(jìn)制數(shù)字輸出輸出結(jié)果驅(qū)動一
    的頭像 發(fā)表于 09-20 18:26 ?2854次閱讀

    KUKA給整數(shù)計數(shù)器或者二進(jìn)制輸出端賦值

    用此指令可以對一整數(shù)計數(shù)器或一二進(jìn)制輸出端賦值,并將賦的信號和一種條件 (布爾算子)相連接
    的頭像 發(fā)表于 04-15 09:54 ?2079次閱讀

    10進(jìn)制轉(zhuǎn)換為二進(jìn)制的算法

    10進(jìn)制轉(zhuǎn)換為二進(jìn)制是計算機(jī)領(lǐng)域中非常重要的一問題。在計算機(jī),所有的數(shù)據(jù)都是以二進(jìn)制
    的頭像 發(fā)表于 01-11 09:14 ?2387次閱讀

    二進(jìn)制處理的一些技巧

    二進(jìn)制和十進(jìn)制的處理,有時候一些小技巧是很有用的。 1、把十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù) (1)在MATLAB中有一
    的頭像 發(fā)表于 07-05 11:51 ?577次閱讀

    二進(jìn)制編碼器工作原理 如何選擇二進(jìn)制編碼器

    二進(jìn)制編碼器是一種數(shù)字電路,它將輸入二進(jìn)制代碼轉(zhuǎn)換為對應(yīng)的輸出信號。在數(shù)字系統(tǒng),編碼器用于將數(shù)據(jù)從一種
    的頭像 發(fā)表于 11-06 09:44 ?767次閱讀

    二進(jìn)制編碼器應(yīng)用場景 二進(jìn)制編碼器與模擬編碼器比較

    限性。 二進(jìn)制編碼器概述 二進(jìn)制編碼器是一種將輸入信號轉(zhuǎn)換為二進(jìn)制代碼的設(shè)備。它通常用于數(shù)字系統(tǒng),將模擬信號或非
    的頭像 發(fā)表于 11-06 09:45 ?445次閱讀

    二進(jìn)制編碼器的種類及特點

    處理多個輸入信號,并根據(jù)輸入信號的優(yōu)先級輸出二進(jìn)制編碼。如果多個輸入同時為高電平,它將
    的頭像 發(fā)表于 11-06 09:47 ?493次閱讀