題目:接受使用者輸入的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年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...