關於C二進位制平移問題

時間 2022-10-06 10:40:17

1樓:匿名使用者

for(int i=len-1;i>=0;i--,n>>=1)是通過迴圈將n的低位位元組的各位移到最低位上,

第1次不移,n的最低位就在最低位,第2次迴圈移1位,...,第8次移7位,

如此,每次迴圈體執行時,n的相應位都會出現在最低位上(倒序,所以i=len-1迴圈)

b[i]=(01&n)+'0';這裡01也可以寫成1,就是用1與n以便取得最低位,再加'0',這樣

最低位如果是0,則計算得到字元'0',如果是1得到'1',先算b[7],然後b[6],...,b[0]

這個子程式是將n的最低位位元組轉化成二進位制字串存放在b中

由於使用低位位元組(對應2進位制8位),所以n取值0-255,b指向的字元空間長度至少要有9個。

2樓:匿名使用者

第一處是指的平移一位,相當於除以2,

第二處01&n是指將01和n做與運算,&n在這裡不是取地址的意思,與01做與去處的結果是取出n的第0位二進位制值

3樓:匿名使用者

n>>=1 就是 n=(n>>1);,

&n 這&不是取地址,是逐位邏輯 and 運算子

學c++一定打好基礎,基本知識不足,越學越吃力的

4樓:匿名使用者

這裡&是取並的意思。and運算。

關於二進位制的問題,關於二進位制的問題

二進位制18世紀德國數理哲學大師萊布尼茲從他的傳教士朋友鮑威特寄給他的拉丁文譯本 易經 中,讀到了八卦的組成結構,驚奇地發現其基本素數 0 1 即 易經 的陰爻 和 陽爻,其進位制就是二進位制,並認為這是世界上數學進位制中最先進的。20世紀被稱作第三次科技革命的重要標誌之一的計算機的發明與應用,其運...

二進位制右移問題高手來,二進位制右移問題高手來

11110001右移4位,有不同的右移操作。如果是邏輯右移的話,11110001右移4位之後,得00001111 左側補0 但如果是算術右移的話,11110001右移4位之後,得11111111 左側不變 做而論道 首先 15算不算有符號數?算。15用二進位制如何表示?即 1111。15的二進位制是...

二進位制如何轉為十進位制 浮點數c,二進位制如何轉為十進位制 浮點數 c

樓上的 好像還是不能解決浮點數的問題啊 int i 0 int j,k 0 double value 0.0 char d 100 cout 請輸入 n cin d j strlen d for i j 1 i 0 i cout 十進位制是 這段可以解決二進位制轉為十進位制 但是不能實現浮點數的運算...