1樓:楊必宇
二進位制數只是正數的話,那百麼只看末尾的數字就行了,如果是0,那麼就是偶數,如果是1,那麼就是奇數。
因為,除過末尾數字,其他數字都是當前位乘以2^n後的結果,那麼不管是偶數還是奇數,只要乘了2,都會是偶數,偶數加度偶數還是偶數。因此,只要判問斷末尾數字的奇偶就行了,當然,如果二進位制數是負數的話,那麼就得轉化成原碼再看。
擴充套件資料
常用的有二進位制、八問進位制、十進位制、十六進位制。任何資料在計算機記憶體中都是以二進位制的形式存放的。二進位制數是以2為計算單元,滿內2進1位的數;八進位制數是以8為計算單元,滿8進1位的數。
對於任何一個數字,都可以用不同的容進位制來表示,比如,十進位制數12,用二進位制表示為1100,用八進位制表示為14,用十六進位制表示為0xc。
2樓:勤奮的哈七八答
假設r3中存放待判數值,r4存放臨時結果。如果暫存器不足,就用記憶體代替。 mov r0,1,mov r1,0 //1個數計數器,mov r2,0 //迴圈次數,共迴圈8次。
label_loop,cmp r2,8 //迴圈次數比較,be loop_end //如果已經迴圈8次則跳轉到loop_end。
and r4,r3,r0 //r3,r0按位與運算,結果存入r4,cmp r4,0 //依次取出相應的位與0比較,be loop_next //若相等則跳轉到loop_next,否則計數器加1再跳轉inc r1,b loop_next//到這裡結束了,r1如果等於1那麼有奇數個「1」,否則偶數個「1」。
由於共有8位數,最多0b1000個"1",只有r1最低位為1時才是奇數個「1」,微控制器中似乎沒有三個運算元的指令。
3樓:千葉郎君
arm的彙編還可以,微控制器的沒學過。
以下是偽**,翻譯成微控制器彙編即可。
//假設r3中存放待判數值,r4存放臨時結果。如果暫存器不足,就用記憶體代替。
mov r0,1
mov r1,0 //1個數計數器
mov r2,0 //迴圈次數,共迴圈8次
label_loop:
cmp r2,8 //迴圈次數比較
be loop_end //如果已經迴圈8次則跳轉到loop_end
and r4,r3,r0 //r3,r0按位與運算,結果存入r4
cmp r4,0 //依次取出相應的位與0比較
be loop_next //若相等則跳轉到loop_next,否則計數器加1再跳轉
inc r1
b loop_next
loop_next:
inc r2
shl r0 //r0左移一位,以便取出下一位
b label_loop
loop_end:
and r1,r1,1 //r1中存放了"1"的個數
cmp r1,1
...//到這裡結束了,r1如果等於1那麼有奇數個「1」,否則偶數個「1」
由於共有8位數,最多0b1000個"1",只有r1最低位為1時才是奇數個「1」
大概微控制器中似乎沒有三個運算元的指令, 像and r4,r3,r0,自己再單獨實現以下吧
給定一個二進位制數,怎樣快速判斷其十進位制等指數是奇數還是偶數?
4樓:鷹的飛翔
二進位制來數只是正數的話,那麼只看
源末尾的bai
數字就行了,如果是du0,那麼zhi
就是偶數,如果是1,那麼就是dao奇數。
1.因為,除過末尾數字,其他數字都是當前位乘以2^n後的結果,那麼不管是偶數還是奇數,只要乘了2,都會是偶數,偶數加偶數還是偶數。
2.因此,只要判斷末尾數字的奇偶就行了,當然,如果二進位制數是負數的話,那麼就得轉化成原碼再看。
3.二進位制轉十進位制,從最後一位開始算,依次列為第0、1、2...位 ,第n位的數(0或1)乘以2的n次方,得到的結果相加就是答案,二進位制01101011=十進位制107。
4.二進位制是計算技術中廣泛採用的一種數制,二進位制資料是用0和1兩個數碼來表示的數。
5.它基數為2,進位規則是逢二進一,借位規則是借一當二,只要一個數中各位上數最大不超過1,就可能是二進位制數,否則一定不是二進位制數。
怎麼快速判斷一個二進位制數是奇數還是偶數,舉例說明
5樓:匿名使用者
看最後一位數 因為二進位制是2的倍數,決定奇偶由最後一位決定 是0則是偶數 是1則是奇數
6樓:匿名使用者
這個二進位制的最低位是1就是奇數,是0就是偶數因為二進位制的位數(由低到高)分別代表回著1,答2,4,8,16,32,64,128,256,512,1024.......
只有最低位的這個是1或0
所以二進位制最低位為1時,就是奇數
7樓:燃燒者韋布
看最後一位。
根據二進位制的原理 一個二進位制的數對應的十進位制書的演算法為:
2^n+2^n-1......+2^2+2^1+2^0所以末位為1的是奇數,末位為0的是偶數。
二進位制8位能表示的數用十六進位制表示的範圍是
二進位制8位能表示的數用十六進位制表示的範圍是 7f h到 80 h。16進位制有16個數,0 15,用二進位制表示15的方法就是1111,從而可以推斷出,16進位制用2進位制可以表現成0000 1111,顧名思義,也就是每四個為一位。即二進位制數到十六進位制數的轉換方法為從小數點開始,分別向左 右...
為什麼8位二進位制的補碼取值範圍是
八位二進位制正數的補碼範圍是0000 0000 0111 1111 即0 127,負數的補碼範圍是正數的原碼0000 0000 0111 1111 取反加一 也可以理解為負數1000 0000 1111 1111化為反碼末尾再加一 所以得到 1 0000 0000 1000 0001,1000 00...
如何用8位二進位制數表示 0和 24的原碼 反碼 補碼
1,先求0的原碼,即00000000,2,再求0的反碼,即11111111,3,然後在反碼基礎上加1,即00000000,4,所以 0的補碼內是00000000 同理。求24的原碼容,即00011000,然後,再求24的反碼,即11100111,然後在反碼基礎上加1,即11101000,所以 24的...