怎樣快速把十進位制轉換為二進位制?

時間 2021-05-08 17:47:55

1樓:自學生

把(10…無盡的0+11…無盡的1=21.…無邊的1)的一對正反和正中三方統一時間標準,相對等於一半和一對的數學模型。就是一對二進位制和十進位製同在同步時間統一標準原理的模型了。

證明了用高等數學公式快速演算法經驗表達模型,是快速變化智慧型選擇時間原理模型。詳細過程我《大自然的正反規律》證明了這個模型。

2樓:秦舞

結合兩位的答案,@fx991ESplus @NORTH首先要熟記2的0到12次冪:1,2,4,8,16,32,64,128,256,512,1024,2048,4096

比如(5816)D

5816=4096+1024+512+128+32+16+8=2^12+2^10+2^9+2^7+2^5+2^4+2^3從右往左寫,2有幾次方,轉二進位制時1的右邊就有幾個數得:(1011010111000)B

3樓:祝我大家早日發財

比如舉乙個十進位制數547

512 256 128 64 32 16 8 4 2 1

以上數均為 2n次方

用547-512=35

在上組數字中找組成 35的數字

就是32+2+1

再找組成547的數字就是512+32+2+1=547

所以在以下資料中可以得出547的進製數是

512 256 128 64 32 16 8 4 2 1

1 0 0 0 1 0 0 0 1 1

就是把組成547的數字標為1.其他均為0

然後八進位制 (三位一組421法) 十六進製制(四位一組8421法)就可以啦

4樓:

#include

void to_binary(long long n);

int main(int argc, char *argv) {int n;

printf("請輸入乙個整數,將其轉化為二進位制:\n");

scanf("%d",&n);

to_binary(n);

void to_binary(long long n){long long int r;

r=n%2;

if(n>=2)

to_binary(n/2);

printf("%lld",r);

return;

5樓:NORTH

應付考試的話,有個簡單又快速的辦法,但前提是要記2的乘方。

舉個例子:107轉二進位制。

107=64+43

=64+32+11

=64+32+8+3

=64+32+8+2+1=2的6次方+2的5次方+2的3次方+2的1次方+2的0次方

從右往左,2有幾次方,轉二進位制時1前面就有幾個數。結果為01101011

6樓:

教科書上的方法是相除取餘數,但如果記住乙個對映表,就像乘法口訣一樣,就會相對簡單一點

大概是這樣的:

因為主要是在計算機上用,因此這裡只記住8位對應的10進製數字就可以了。

這樣遇到任意乙個數字,就把這個數字分解成表裡的10進製數字之和即可。或者說把任意乙個數字按照8位二進位制對應的10進製數字展開(就是借用這個概念,不證明正交唯一性啦=。=)。

然後還要注意到乙個事實,即前兩個基底1+2的和,比下乙個基底4小1,同樣的,前n個基底的和,總比後乙個基底小1.這樣在分解數字的時候,可以很快。

舉幾個例子,分解32,就直接是5號位為1,其餘為0,因為它剛好就是5號基底。然後31比基底小1,所以剛好就是5號位以下的基底都是1.然後30呢?

就是31去掉1,因此其他位和31一樣,就是1號基底變為0。其他類推。

剛開始看好像有點複雜,但其實大家對偶數都是一眼就看出來,因此分解乙個數到如上表的基底,練習幾個數字之後,就可以找到規律。然後每當轉換的時候,腦子裡就印出這張表,手底下就按照對應的位數,在每位上直接寫1或者0,一邊轉換一邊就寫好了。

雖然原理和教科書上的方法類似,但練習幾次就很快,幾乎是腦子裡一邊分解一邊就報出相應位上的1或0了。

7樓:yang元祐

不要嘗試手算啊啊啊

什麼年代了,懂點程式設計好伐

幾位數你手算可以,幾十位幾百位呢

在Python中敲幾個字元,搞定,oh也

>>> bin(123)

'0b1111011'

>>> bin(7834489276162939910838313)''

8樓:羅丹陽

#include

void change_to_binary(int num) //轉換函式

int main()

9樓:飛籃

這個不錯,比較詳細

10樓:JackAlan

一般算比較小的數字的話,就先找小於並且臨這個數最近的2的N次方。然後依次。

比如 37

32 + 4 + 1

對應的就是 100101(32 16 8 4 2 1 有的寫1,反之寫0)

11樓:麥萌

你以十進位制的數除以你所要轉換的進製數,把每次除得的餘數記在旁邊,所得的商數繼續除以進製數,直到餘數為0時止.例如你要把100轉換成八進位制:

100/8=12...(餘數為4);

12/8=1.....(餘數為4);

1/8=0......(餘數為1);

然後把相應的餘數從低向高順著寫出來,如上的為144,此即為100的八進位制表示形式.

十進位制轉換為十六進製制與二進位制與前面的轉化為八進位制相同,如100轉換為十六進製制:

100/16=6....(餘數為4);

6/16=0......(餘數為6);

同理則以十六進製制表示的100形式為64;

100轉換為二進位制:

100/2=50....(餘數為0);

50/2=25.....(餘數為0);

25/2=12.....(餘數為1);

12/2=6......(餘數為0);

6/2=3.......(餘數為0);

3/2=1.......(餘數為1);

1/2=0.......(餘數為1);

所以100的二進位制表示形式為1100100;

要換回來就反著算!

12樓:fx991ESplus

心算,一般8000以內的數問題不大,舉個栗子:

5816

5816-4096=1720

1720-1024=696

696-512=184

184-128=56

56-32=24

24-16=8

答案已經很明顯了,1011010111000在數比較"複雜"的時候不推薦,但是有些數字一眼就能看出答案,比如384=256+128,1040=1024+16,1008=1024-16,這種方法就不錯

十進位制轉換成二進位制及二進位制轉換成十進位制是如何轉換的

年年有魚 進製轉換方法如下 1 二進位制 十進位制 例 1101 2 13 10 1101 2 1 2 3 1 2 2 1 2 0 8 4 1 12 1 132 十進位制 二進位制 例 14.625 1110.101 2整數部分 14 10 1110 2 14 2 0 7 2 1 3 2 1 1 2...

二進位制 三進製或十進位制?

李衛 二進位制常用的數字是0和1,三進製常用的數字是0 1 2,十進位制常用的數字是0 1 2 3 4 5 6 7 8 9,在這裡還要介紹新的進製,分別是12進製和16進製制,12進製是指常用的羅馬數字的,一 二 三 四 五 六 七 八 九 十 十 一 十二,而16進製制是指的,0 1 2 3 4 ...

為什麼浮點運算中二進位制和十進位制轉換會產生不完全一致的浮點小數?

lowxiong 先舉乙個簡單的例子 0.3 0.3 3 10 二進位制 11 1010 0.010011001100110011 除不盡。所以小數 有理數 的本質是分數,而分數涉及到除法,在十進位制狀態下做除法的結果可能不無限迴圈,並不表示在二進位制下做相同的兩個數的除法不產生無限迴圈。從十進位制...