1樓:匿名使用者
整數部分和小數部分一般分開進行計算。
121除以2餘1,所以第1位為1,商60
60除以2餘0,所以第2位為0,商30
30除以2餘0,所以第3位為0,商15
15除以2餘1,所以第4位為1,商7
7除以2餘1,所以第5位為1,商3
3除以2餘1,所以第6位為1,商1
1除以2餘1,所以第7位為1
故整數部分為1111001
0.8125乘以2=1.625>1,所以第1位為1,1.625-1=0.625
0.625乘以2= 1.25>1,所以第2位為1, 1.25-1=0.25
0.25乘以2= 0.5<1,所以第3位為00.5乘以2= 1=1,所以第4位為1故小數部分為0.1101
綜上得到121.8125的二進位制為1111001.1101
2樓:匿名使用者
因為要參加軟考了(當然也只有考試有這種魅力),我得了概浮點數轉化為二進位制表示這個最難的知識點(個人認為最難)。俺結合大量的從網上收集而來的資料現整理如下,希望對此知識點感興趣的pfan有所幫助。基礎知識:
十進位制轉十六進位制;
十六進位制轉二進位制;
ieee制定的浮點數表示規則;
瞭解:目前c/c++編譯器標準都遵照ieee制定的浮點數表示法來進行float,double運算。這種結構是一種科學計數法,用符號、指數和尾數來表示,底數定為2——即把一個浮點數表示為尾數乘以2的指數次方再添上符號。
下面是具體的規格:
符號位 階碼 尾數 長度
float 1 8 23 32
double 1 11 52 64
以下通過幾個例子講解浮點數如何轉換為二進位制數
例一:已知:double型別38414.4。
求:其對應的二進位制表示。
分析:double型別共計64位,摺合8位元組。由最高到最低位分別是第63、62、61、……、0位:
最高位63位是符號位,1表示該數為負,0表示該數為正;
62-52位,一共11位是指數位;
51-0位,一共52位是尾數位。
步驟:按照ieee浮點數表示法,下面先把38414.4轉換為十六進位制數。
把整數部和小數部分開處理:整數部直接化十六進位制:960e。小數的處理:
0.4=0.5*0+0.25*1+0.125*1+0.0625*0+……
實際上這永遠算不完!這就是著名的浮點數精度問題。所以直到加上前面的整數部分算夠53位就行了。隱藏位技術:最高位的1不寫入記憶體(最終保留下來的還是52位)。
如果你夠耐心,手工算到53位那麼因該是:38414.4(10)=1001011000001110.0110011001100110011001100110011001100(2)
科學記數法為:1.001011000001110 0110011001100110011001100110011001100,右移了15位,所以指數為15。或者可以如下理解:
1.001011000001110 0110011001100110011001100110011001100×2^15
於是來看階碼,按ieee標準一共11位,可以表示範圍是-1024 ~ 1023。因為指數可以為負,為了便於計算,規定都先加上1023(2^10-1),在這裡,階碼:15+1023=1038。
二進位制表示為:100 00001110;
符號位:因為38414.4為正對應 為0;
合在一起(注:尾數二進位制最高位的1不要):
01000000 11100010 11000001 110 01100 11001100 11001100 11001100 11001100
3樓:所山槐
請將1ed(h)轉化為十進位制整數,並寫出計算過程
十進位制小數0.8125轉換二進位制 要求過程
4樓:心亡殘夢
小數部分
0.8125×2=1.625,取1
0.625×2=1.25,取1
0.25×2=0.5,取0
0.5×2=1,取1
十進位制:0.8125=二進位制:0.1101
擴充套件資料:
1. 十進位制整數轉換為二進位制整數
十進位制整數轉換為二進位制整數採用"除2取餘,逆序排列"法。具體做法是:用2整除十進位制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數。
如此進行,直到商為小於1時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。
2.十進位制小數轉換為二進位制小數
十進位制小數轉換成二進位制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進位制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積。
再將積的整數部分取出,如此進行,直到積中的小數部分為零,此時0或1為二進位制的最後一位。或者達到所要求的精度為止。
然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。
5樓:足壇風行者
十進位制小數0.8125轉換二進位制的值是:0.1101,計算過程:
0.08125*2=1.625,取1留下0.625繼續乘2;
0.625*2=1.25,取1留下0.25繼續乘2;
0.25*2=0.5,取0留下0.5繼續乘2;
0.5*2=1,取1結束。
最終十進位制0.8125換算成二進位制是0.1101。
擴充套件資料計算機中的十進位制小數轉換二進位制的方法如下:
計算機中的十進位制小數用二進位制通常是用乘二取整法來獲得的。
比如0.65換算成二進位制就是:
0.65 × 2 = 1.3 取1,留下0.
3繼續乘二取整0.3 × 2 = 0.6 取0, 留下0.
6繼續乘二取整0.6 × 2 = 1.2 取1,留下0.
2繼續乘二取整0.2 × 2 = 0.4 取0, 留下0.
4繼續乘二取整0.4 × 2 = 0.8 取0, 留下0.
8繼續乘二取整0.8 × 2 = 1.6 取1, 留下0.
6繼續乘二取整0.6 × 2 = 1.2 取1,留下0.
2繼續乘二取整.......
一直迴圈,直到達到精度限制才停止(所以,計算機儲存的小數一般會有誤差,所以在程式設計中,要想比較兩個小數是否相等,只能比較某個精度範圍內是否相等)。這時,十進位制的0.65,用二進位制就可以表示為:
0.1010011。
6樓:匿名使用者
小數部分
0.8125×2=1.625,取1
0.625×2=1.25,取1
0.25×2=0.5,取0
0.5×2=1,取1
(0.8125)10=(0.1101)2
7樓:一角錢半分貨
string s1 = t1.value, s2 = t2.value;//s1是十進位制數,s2是進位制 就這題而言是2
int n1 = 0, n2 = 0, x = 1, resoult = 0;
int.tryparse(s1, out n1);
int.tryparse(s2, out n2);
while (n1 >= n2)
resoult += n1 * x;
t3.value = resoult.tostring();
這個**是asp.net 基於 整數編寫的 原理一樣,需要稍作調整.僅供參考,隨手之作
將十進位制數121轉化為二進位制數是多少?
8樓:懶散六媽
十進位制數121轉化為二進位制數是1111001十進位制整數轉換為二進位制整數採用"除2取餘,逆序排列"法121÷2=60 ,餘1;
60÷2=30,餘0;
30÷2=15,餘0;
15÷2=7,餘1;
7÷2=3,餘1;
3÷2=1,餘1;
最後餘1
讀數:從最後的結果往上讀每一次計算的餘數即1111001
9樓:文史一家人
121轉化成二進位制數是1111001。一個十進位制整數轉換為二進位制整數通常採用除二取餘法,即用2連續除十進位制數,直到商為0,逆序排列餘數即可得到二進位制數,簡稱除二取餘法。
計算方法:
121÷2=60 ,餘數1;
60÷2=30,餘數0;
30÷2=15,餘數0;
15÷2=7,餘數1
7÷2=3,餘數1
3÷2=1,餘數1
1÷2=0,餘數1
將餘數逆序排列即可得到結果為1111001。
擴充套件材料:
十進位制轉換成任意進位制的方法
十進位制數轉換成r 進位制數(r代表其他進位制,如二進位制、十六進位制、八進位制等),須將整數部分和小數部分分別轉換。
1、整數轉換——除r取餘法規則:
(1)用r 去除給出的十進位制數的整數部分,取其餘數作為轉換後的r 進位制資料的整數部分最低位數字;
(2)再用r去除所得的商,取其餘數作為轉換後的r 進位制資料的高一位數字;
(3)重複執行(2)操作,一直到商為0結束。
2、小數轉換——乘r取整法規則:
(1)用r 去乘給出的十進位制數的小數部分,取乘積的整數部分作為轉換後r 進位制小數點後第一位數字;
(2)再用r 去乘上一步乘積的小數部分,然後取新乘積的整數部分作為轉換後r 進位制小數的低一位數字;
(3)重複(2)操作,一直到乘積為0,或已得到要求精度數位為止。
10樓:香料魔法
121(十進位制)=1111001(二進位制)計算方式如圖所示:
121÷2=60餘1
60÷2=30餘0
30÷2=15餘0
15÷2=7餘1
7÷2=3餘1
3÷2=1餘1
還餘1讀數的時候,從最後的結果往上讀每一次計算的餘數就是的出來的結果。
也可以使用公式:bcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)進行計算
擴充套件資料二進位制轉十進位制的方法
十進位制整數轉換為二進位制整數可以採用「除2取餘,逆序排列」法。
用2整除十進位制的整數,然後得到一個商和餘數,再用2去除得到的商,又可以得到一個商和餘數,如此一直進行下去,直到商小於1時停止。
把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。
11樓:
121(十進位制) = 1111001(二進位制)。
演算法:用121除以2然後取它的餘數。
即:121 除 2 取 餘,直到小於2,即:121/2 = 60 餘1 60/2 = 30 餘 0 30/2 = 15 餘 0 15/2 = 7 餘17/2 = 3 餘 1 3/2 = 1 餘1
將餘數從後往前串起來,就得到1111001。
十進位制轉化十六進位制,十進位制轉化十六進位制
可以先轉換成二進位制然後再轉換成十六進位制 最終結果為 12e3cf1eah 求超久的,我算出來是25c79d3cc 十進位制轉化為十六進位制怎麼算 十進位制轉化為十六進位制計算方式,簡單說就是整數除以16取餘,直到商為0為止,然後從最後一個餘數讀到第一個 十六進位制轉化為十進位制計算方式,按權 相...
十進位制轉換十六進位制,十進位制轉化為十六進位制怎麼算
對於整數部分,用被除數反覆除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位制數的最高位。對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。例如將487710轉成十六進位制 4877 1...
將十進位制數轉換為十六進位制數使用易語言哪個命令名
呵呵。朋友你這個要用程式集來完成,我以前寫過這樣的程式,送給你研究吧,可能我的程式集和你想做的有點出入但是,大概就是這個意思,你再研究修改下就可以了,希望對你有幫助。版本 2 子程式 按鈕1 被單擊 區域性變數 a,文字型 a 到文字 到十進位制 編輯框1.內容 編輯框2.內容 取十六進位制文字 到...