題目描述:
建立乙個帶頭結點的線性鍊錶,用以存放輸入的二進位制數,鍊錶中每個結點的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...