關於二進位制加減

2021-10-06 12:36:19 字數 1411 閱讀 6126

題目:接受使用者輸入的0/1字串(最長20位), 檢查使用者輸入是否合法(二進位制字串只能由0或1組成),如不合法,報錯退出; 如合法,返回兩者相加結果(二進位制相加)

思路 : 先對使用者輸入的數字存進陣列中進行判斷是否為0/1字串。判斷之後把二進位制轉為十進位制再計算,計算後逆序輸出。

#include

#include

#include

//將輸入的字串轉換為數字,然後進行判斷。

intjudge

(char

*p,char

*q,int m,

int n)

//進行判斷 輸入資料是否是0/1字串

intf

(int num,

int n)

for(i=

0;i)free

(a);

a =null;}

char

*reverse

(char

*a)//陣列資料逆序

return a;

}// 計算二進位制字串相加的結果並輸出

char

*cal

(char

*a,char

*b,int m,

int k)

p[i]

= temp +

'0';

}while

(ip[i++

]= temp +

'0';

}while

(ip[i++

]= temp +

'0';}if

(flag ==1)

p[i]

='\0'

; length =

strlen

(reverse

(p))

;for

(i=0

;i)free

(p);

// 釋放記憶體

p =null;}

intmain()

, b[21]

=;int t=

0,m,k;

printf

("please input two string:\n");

scanf

("%s"

,a);

scanf

("%s"

,b);

m =strlen

(a);

k =strlen

(b);

t =judge

(a,b,m,k);if

(t==1)

printf

("error input first 01 str");

else

cal(a,b,m,k)

;return0;

}

關於二進位制

二進位制是計算技術中廣泛採用的一種數制。二進位制數 據是用0和1兩個數碼來表示的數。它的基數為2,進製規則是 逢二進一 借位規則是 借一當二 由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機 系統使用的基本上是二進位制系統。二進位制中的單位 1byte 位元組 8 bits 位 1kb 千位元組...

關於二進位制

最高位1表示負,0表示正,負數只需要把其正數的二進位制最高位寫1就行了 在計算機中,負數的二進位制是用正數的二進位制的補碼表示。8在計算機中表示為二進位制的1000,那麼 8怎麼表示呢?可以將乙個二進位制位 bit 專門規定為符號位,它等於0時就表示正數,等於1時就表示負數 比如,在8位機中,第一步...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...