用鍊錶實現對二進位制數加1的運算

2021-10-04 08:25:48 字數 1053 閱讀 3496

題目描述:

建立乙個帶頭結點的線性鍊錶,用以存放輸入的二進位制數,鍊錶中每個結點的data域存放乙個二進位制位。並在此鍊錶上實現對二進位制數加1的運算。

問題分析:

①建鍊錶:二進位制數可用帶頭結點的單鏈表儲存,第乙個結點儲存二進位制數的最高位,依次儲存,最後乙個結點儲存二進位制數的最低位。

②根據二進位制加法規則:實現二進位制數 加1運算,方向從低位往高位找到第乙個值為0的位,,從該位開始,對後面所有低位進行求反運算。

③鍊錶實現二進位制加1時,從高位往低位與運算方向正好相反,從第個結點開始找 ,找出最後乙個值域為0的結點,把該結點值域賦為1,其後所有結點的值域賦為0。

④若在鍊錶中未找到值域為0的結點,則表示該二進位制數各位均為1,此時,申請一新結點,值域為1,插人到頭結點與原鍊錶的第乙個結點之間,成為新鍊錶的第乙個結點,其後所有結點的值域賦為0。

**展現:

函式部分:

linklist *

plus_one

(linklist *l)

p=p-

>next;}if

(s !=

null)}

else

}return l;

}

主函式:

linklist *l,

*p; cout<<

" 用鍊錶實現二進位制加一:"

<

for(

int i=

0;i<

4;i++)

cout<<

"+1="

; l=

plus_one

(l);

len=1;

while

(len<=l-

>data)

cout<

}

效果展示:

python二進位制數加1 二進位制中為1的位數

二進位制中為1的位數 題目要求 給定乙個整數,請計算二進位制中為1的位數 輸入 13 輸出 3 解釋 13的二進位制表示是 1101,位為1的數量是3 思路分析 如果乙個數是奇數,那麼它的二進位制的最後一位一定是1,道理很簡單,其他的位都表示2n 只有最後一位表示20 我們可以利用最後一位是否為1來...

二進位制數當中的1

題目要求 給定乙個整型的數,返回此整型數的對應二進位制數當中1的數目 version 1 這一版本的演算法,是先計算輸入數對應的二進位制數,將二進位制序列存放在乙個vector當中,最後通過計算二進位制序列當中元素1的個數返回答案。唯一需要注意的是對輸入的負數要先進行處理,這裡採用的處理方式是直接採...

二進位制 二進位制中1的個數

題目 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 0000000...