要求彙編用與運算判斷某8位二進位制數是奇數還是偶數個

2021-03-07 07:50:09 字數 2588 閱讀 8849

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的...