㈠ 二進制轉換成十進制(除10取余法)
我一開始也很不理解,我想不通的地方在於2怎麼能除以10呢,後來類比10進制數也能除以16,23,這類數,所以這里的除十取余的「十」指的是二進制里的10,即(1010)B,不知道我的理解能否幫到你
㈡ 二進制除法怎麼算急啊!!!
在十進制中,從十位借一位到個位,用在個位減的時候,就是10+個位上的數,二進制,從十位借一位到個位,用在個位減的時候,就是2+個位上的數。
定點數(整數),那就舍掉了。是浮點數,則繼續加位運算,直到精度達到後舍掉。
比如說:101-11,個位夠減,為0,十位不夠,從百位上借1,所以十位就為2,被減數十位-減數十位,為2-1=1,所以結果為10。
除法就是移位相減 99/5,先1100011 - 1010000 = 10011(其中二進制1010000 = 5乘2的4次冪)
再10011 - 1010 = 1001 ( 其中二進制1010 = 5乘2的1次冪) ,再1001 - 101 = 100( 其中二進制101 = 5乘2的0次冪) ,最後得到商為2^4+2^1+2^0 = 16+2+1=19(^代表次冪) ,余數為二進制100 = 4
㈢ 二進制轉十進制,十進制轉二進制的演算法(求助)
二進制轉換為十進制:
方法:「按權展開求和」,該方法的具體步驟是先將二迸制的數寫成加權系數展開式,而後根據十進制的加法規則進行求和 。
規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。
十進制轉換為二進制:
一個十進制數轉換為二進制數要分整數部分和小數部分分別轉換,最後再組合到一起。
整數部分採用 "除2取余,逆序排列"法。具體做法是:用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為小於1時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。
小數部分要使用「乘 2 取整法」。即用十進制的小數乘以 2 並取走結果的整數(必是 0 或 1),然後再用剩下的小數重復剛才的步驟,直到剩餘的小數為 0 時停止,最後將每次得到的整數部分按先後順序從左到右排列即得到所對應二進制小數。
通用進制轉換:
不同進制之間的轉換本質就是確定各個不同權值位置上的數碼。轉換正整數的進制的有一個簡單演算法,就是通過用目標基數作長除法;余數給出從最低位開始的「數字」。
(3)二進制除10取余演算法擴展閱讀:
1、十進制整數轉二進制整數:
十進制整數轉換為二進制整數 十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。
2、十進制小數轉換為二進制小數:
十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。
然後把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,後取的整數作為低位有效位。
參考資料:網路-二進制
㈣ 二進制與10相除余數的問題
余數 = 4
0x10111 = 65809,
左移20位,相當於乘以1048576,其最末位是4。
--------------------
左移一個二進制位,相當於乘以2;
左移二個二進制位,相當於乘以4;
左移20位,就相當於乘以1048576。
乘以1048576,不用全算,
只用末尾的6,乘以65809末尾的9,得到54,即可知道本題的結果了。
--------------------
樓主提到這是筆試題目,從這個出發點來看,原始數據0x10111不像是16進制數字。如果是16進制,計算起來較難,不適宜做為考試題目。
原始數據0x10111,如果沒有「0x」在裡面,極像二進制數。
如果是二進制數,就是十進制的23。
其它步驟,按照上述介紹計算,余數就 = 8。
--------------------
樓主提到:「筆試的人不可能讓我去算左移20位是1048576吧?」
其實,左移10位,就是2的10次方,等於1024,這應該算是常識。
2的10次方,等於1024×1024,末尾數字是6,並不是難為考生。
用這個6,乘以原始數據的末位數,馬上就得出結果,這應該是個很簡單的題目。