高手請進!如何把乙個很大的二進位數,以十進位表示出來?

2025-03-25 03:40:30 字數 5413 閱讀 2943

1樓:網友

不好意思我誤解樓主的意思了。

不知道lz考慮過沒有,2^32進位是基於2進位的,也就是說輸出的時候按照萬進位那樣連在一起輸出是不可行的,輸出的不會是想要的結果。因為儲存的數很大,那麼要直接轉換是肯定不可行的,這又需要乙個基於10進位(比如萬進位)的陣列。所以,看起來用2^32進位是節省了記憶體,這也是你的本意,其實,它反而更加浪費了,不僅螞脊比用萬進位多用了乙個2^32進位的陣列,輸出時還多了一步轉換。

這是使用2^32進位的乙個非常大的缺陷。

2^32進位還有很多別的毛病,比如每次公升位肯定會越界因為你為了節省儲存空間而沒有留下餘地。要是知道每次自乘公升的位數(比如自乘2在2進位裡是公升一位)還可以進行強制公升位,但要是是乙個別的不是2的數呢?公升位是無法預知的。

而如果森物笑真要使用2^32進位陣列計算2^315,也無法達到對儲存空間的充分利用,因為unsigned int 2^32輸出的時候其實等於0,也就是說只有最高位a[n]有意義,其他的位a[n-1]到a[0]全部是0,根本沒用。

**我也沒寫了,因為有第一點輸出問題,使用2^32進位根本沒有起到充分利用儲存空間的作用。

最後我想說的是,即使這樣的演算法真的能充分利用記憶體,但現在是記憶體此含爛大街的時代,用編寫多餘**的時間加多餘**執行的時間換取這麼一點記憶體空間不值得,時間永遠是最寶貴的。

izat完成。

2樓:侍幼白

0,1,2,3,4,5,6,7,8,9分別對應。

9的話需要四位1000

1.二進位計數法的概念。

人們在日常生活中和生產實踐中,我們接觸到越來越多的數字,創造了分組計數的制度。而我們的生活中,一般採用了"滿十進一"的十進位計數法,我們棗凱現在已經熟悉並經常運用這一種計數法了。但也有采用其他計數法。

如二進位,六進位,十六進位等計數法。現在就來講一講"二進位"和"十進位"的關係。

2.十進敏巖瞎制和二進位數的互化。

1)化十進位數為二進位數。

1>比較小的十進位數為二進位數可以用觀察法。

例:化45為二進位數。

因為2的0次方,1次方,2次方~~~10次方分別等於1,2,4,8,16,32,64,128,256,512,1024.

所以 45=32+8+4+1=2⑤+2③+2②+1=1*2⑤+0*2④+1*2②+0*2①+1*1=101101(二進位)

2>一般化法。

利用短除法(通常叫做"二除取餘法")

2)化二進位數為十進位數。

這是比較方便的,只需把二進位是寫成式;計算即得。

例1 化101101(二進位)為十進位數。

101101(二進位)=1*2⑤橋空+0*2④+1*2③+1*2②+0*2①+1*1=32+0+8+4+0+1=45

例 2 化1011010101(二進位)為十進位數。

1011010101(二進位)=1*2⑨+1*2⑦+1*2⑥+1*2④+1*2②+1*1=512+128+64+16+4+1=725

3樓:天山雪蓮

我是這樣想的,不知道對於否?

比如:a是純拍你做衝羨說的很大的二進位數,a&0xffffffff的值二進位轉換為十進位存入i[0];

a右移32位再與0xffffffff,再將結果二進位轉換為十進位存入i[1];

可是判州這個很大的數是怎麼儲存的,如果是8bit分別儲存的時候,c語言的實現語句要不要和硬體結合?

二進位轉十進位應該會吧?

4樓:網友

你的初衷 是 想對int的每個bit都充分利用。

我想了一下,要列印出來,或磨還非得另外搞個大陣列不停返埋地累加,而且還容易出錯,所以這樣反衫世鬥而更復雜了。

如何用二進位表示十進位數?

5樓:教育小百科達人

乙個十進位數可寫成乙個純小數乘上10的若干次方,相似的,乙個二進位可寫成乙個純小數乘上2的若干次方。伏派例如,;一般地,任乙個二進位n,可表示為n=2j×s;

其中j為二進位數,叫階碼;j如果有正負號的話,正負號就叫階符;s為純小數,叫做尾數;數符,指的是n整個數的符號。

浮點數能表示的範圍由階碼的位數決定,精確度有尾數的位數決定。

如何用十進位表示二進位數?

6樓:帳號已登出

<><3、接下來,一直除以到後面,可以看到最底部的0即可,就停止除以。

4、最後,就開始得出二進位,把右側的數字進行從下往上的整理,就是11101,這樣就是29十進位轉化為二進位。

7樓:做而論道

隨便寫就是。比如:

十進位的 8,就表示二進位的 1000。

十進位的 15,就表示二進位的 1111。

怎麼用十進位表示二進位數?

8樓:網友

連續除2即可得到二進位。

12÷2=6…臘轎…0

倒著寫:11000000

擴旦局廳展資料:對於整數部分,用被除數反覆除以2,除第一次外,每次除以2均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位數的最高位。

對於小數部分,採用連續乘以基數2,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。

二進位模隱數轉換為十進位數。

二進位數第0位的權值是2的0次方,第1位的權值是2的1次方。數所在的位值乘以所在的位權。

十進位數和二進位數如何對應起來

9樓:你猜我猜哇擦猜

各種進位之間的轉換方法:

一、不同的進位制。

數轉化為十進位空叢。

數:按權相加。

十進位是權是10;二進位是權是2;十六進位是權是16;八進位。

是權是8;例:

110011(二進位數。

1507(八進位數)=1*8^3 + 5*8^2 + 0*8^1 + 7*8^0 = 839

2af5(十六進位數。

2*16^3 + a*16^2+ f*16^1 + 5*16^0 = 10997

二、十進位數化為不同進位數。

整數部分:除權取餘;小數部分:乘權取整。

例:十進位數13轉化成二進位數。

13/2=6 餘1

6/2=3 餘0

3/2=1 餘1

1/2=0 餘1

結果:1101

三喊激、二進位換算八進位。

將二進位數從右到左,三位一組,不夠補0

例:二進位數10110111011換八進位數:

結果為:2673

四、二進位轉換。

十鄭虧襪六進位。

二進位數轉換為十六進位數的方法也類似,從右到左,四位一組,不夠補0如上題:

結果為:5bb如上題:

結果為:5bb

十進位數的10用二進位該如何表示?

10樓:月光下的

您好,很高興您的問題。

所以10除以2,商5餘0;5除以2,商2餘1;2除以2,商1餘0;1除以2,商0餘1。最後轉換成二進位的結果就為1010。

二進位,十六進位,十進位之間怎麼換算?詳細過程!!最好有圖示!

11樓:匿名使用者

我們先從熟悉的十進位說起,十進位即逢十進一,由0-9組成,它的每一位都是十的冪,比如123,個位是10的0次方,十位是10的1 次方,百位是10的2次方,因此123其實就相當於1×10(2)+2×10(1)+3×10(0)=1×100+2*10+3=123(注:括號內的數表示次方),對於二進位和十六進位,轉成十進位也是同樣的道理,二進位的每一位是2的冪,十六進位的每一位是16的冪,把十進位轉換中的10換成2或16即可。通常將二進位,十六進位轉換成十進位的方法叫安全法。

比如:(1)二進位——>十進位:

二進位數1101=1×2(3)+1×2(2)+0×2(1)+1×2(0)

13(2)十六進位——>十進位:

十六進位數12=1×16(1)+2×16(0)=16+2=18

反過來:十進位轉二進位和十六進位,分別用除2取餘法和除16取餘法。比如:十進位數13 除以2,商為6,餘數為1,將得到的商6繼續除以2,商為3,餘數為0,將得到的商3繼續除以2,商為1,餘數為1,將得到的商1繼續除以2,商為0,餘數為0。

當算到商為0時,結束。結果從下往上看,應該為1101。

十六進位轉十進位一樣的,只是是除以16。

二進位轉十六進位:

因為二進位數僅由0和1組成,你只需記住,二進位數的低位到高位分別表示1,2,4,8,16,32……,即2的(n-1)次方即可。對於四位二進位數,從高到低分別是8,4,2,1。二進位轉16進位,只需將2進位數從右向左每四位一組合,每乙個組合以乙個十六進位數表示。

比如:(3)1110110四個四個組合後相當於0011 1010(注意位數不足補0),0011=2+1=3,1010=8+2=a,所以轉換成的十六進位數是3a.

反過來,十六進位轉二進位,只需把十六進位的每一位分解成四位二進位數即可,比如十六進位的35,首先變3,3介於2和4之間,就想辦法把2和1湊成3,2+1=3,所以只有第一位和第二位是1,即0011;再變5,5介於4和8之間,就要想辦法把8以前的4,2,1三位數湊成5,可知4+1=5,所以第一位和第三位為1,即0101,所以轉換成的二進位數是00110101。

12樓:匿名使用者

先說下十進位,就是由0,1,2,3,4,5,6,7,8,9為十個陣列成的數字,當然0不能放前面的。同樣,八進位,是由 0~8八個數字組的數字,十六進位,是由0~9,a,b,c,d,e,f十六個陣列成的數字,a~f,表示10~15;方法(轉八進位,其餘類似):由156來作例子。

商 餘數156/8=19...4 19/8=2...32/8=0...

2結束,所以轉為八進位是234156---234再算下十六進位的(用2608作例子)2608/16=163...0163/16=10...310/16=0...

10 (注:10即是a);所以十六進位表示是a30;其餘的類似。

怎麼把乙個10 進位數轉化為8進位啊!

13樓:惠企百科

1、首先啟動excel2010,選擇單元格扮中坦a2輸入十進位數1,a3輸入3,填充等差數列。

2、選擇單元格b2,點選插入函式,接著廳桐彈出插入函式對話方塊。

3、選擇類別設定為全部,選擇函式dec2oct函式,點選確定按鈕。

4、在函式引數對話方塊中設定number引數為a2,設定places為4,點選確定按鈕。

5、接著就會出現結果,結果就以4位字元的形式出現,檢視結果。

6、然後把滑鼠放在單元格b2的右下培拿方雙擊進行填充,這樣就完成了轉換操作。

字母用二進位制怎麼表示,26個字母的二進位制程式碼

01000001 65 41 a 01000010 66 42 b 01000011 67 43 c 01000100 68 44 d 01000101 69 45 e 01000110 70 46 f 01000111 71 47 g 01001000 72 48 h 01001001 73 49...

A6H的二進位制,26個字母的二進位制程式碼

a6 h 1010 0110 b 十六進位制轉二進位制只要把每一位都轉成4位二進位制數就可以了a 1010,6 0110,所以十六進位制的a6轉成二進位制就是10100110 a6 h 0 10000 1010 10000 110 b 1010 10000 110 b 10100000 110 b ...

程式設計中的二進位制問題!請高手幫忙

主要是10進位制轉2進位制吧。2進位制轉8和16進位制很簡單。二進位制 十六進位制 從右側開始一次取4bit,對應。1010 a 1011 b 1100 c 1101 d 1110 e 1111 f 即可轉成16進位制。如0010101101010101 2b55如位數不是4的整數倍,則左側補零。二...