1、首先這里將0.125乘于2,得到0.25,取商0.25的整數(shù)部分0。 2、再將0.25*2,得到0.5,取商0.5的整數(shù)部分0。 3、再將0.5*2,得到1,取商1的整數(shù)部分1。 4、此時商已經(jīng)沒有小數(shù)部分了,相乘的步驟到此結束。將以上所有步驟的整數(shù)部分順序排列,得
用圖解的方法讓你學會!不是很難,只要你認真看一遍,你就能掌握方法哦!
方法
假設要把十進制156轉(zhuǎn)化成二進制!第一步把156除于2,
#include void main() { //進制轉(zhuǎn)換函數(shù)的聲明 int transfer(int x); int x; printf("請輸入一個十進制數(shù):"); scanf("%d",&x); printf("轉(zhuǎn)換成二進制數(shù)是:%dn",transfer(x)); } int transfer(int x) { int p=1,y=0,yushu; while(1) { yushu=x%2
得到78,剛好整除,然后后面記錄0
可以采用乘2取整法,即將小數(shù)部分乘以2,然后取整數(shù)部分,剩下的小數(shù)部分繼續(xù)乘以2,然后取整數(shù)部分,剩下的小數(shù)部分又乘以2,一直取到小數(shù)部分為零為止。 如果永遠不能為零,就同十進制數(shù)的四舍五入一樣,按照要求保留多少位小數(shù)時,就根據(jù)后面
依次除于2,能整除的記錄0,不能整除的記錄1
10進制數(shù)轉(zhuǎn)換為2進制數(shù)給你一個十進制,比如:6,如果將它轉(zhuǎn)換成二進制數(shù)呢?10進制數(shù)轉(zhuǎn)換成二進制數(shù),這是一個連續(xù)除2的過程:把要轉(zhuǎn)換的數(shù),除以2,得到商和余數(shù),將商繼續(xù)除以2,直到商為0。最后將所有余數(shù)倒序排列,得到數(shù)就是轉(zhuǎn)換結果。聽
這就是最后的結果,這個方法適合所有的轉(zhuǎn)化,是最常見的!
二進制數(shù)轉(zhuǎn)換成十進制數(shù)的方法如下: 1、正整數(shù)轉(zhuǎn)成二進制,除二取余,然后倒序排列,高位補零。將正的十進制數(shù)除以二,得到的商再除以二,依次類推知道商為零或一時為止,然后在旁邊標出各步的余數(shù),最后倒著寫出來,高位補零就可以。 2、42除
擴展閱讀,以下內(nèi)容您可能還感興趣。
如何把十進制數(shù)字轉(zhuǎn)換為二進制數(shù)字?
1、將需要轉(zhuǎn)換的百數(shù)值輸入到wps表格中。
度查看大圖" class="ikqb_img_alink">
2、點擊二進制數(shù)值所在的任意單元格。
3、在上方的公示欄中輸入公式=DEC2BIN(A2)。問
4、點擊公式旁邊的綠色對勾。
5、將鼠標答放到B2單元格的小色塊上等其變?yōu)?號。
6、按住鼠版標左鍵向下拖權拽。
7、最終結果,如圖所示。
在電腦的計算機中,如何把十進制轉(zhuǎn)換成二進制
以下代碼用于實現(xiàn)十進制轉(zhuǎn)二進636f7079e799bee5baa6e79fa5e9819331333431356663制、八進制、十六進制:
# -*- coding: UTF-8 -*- # Filename :test.py# author by : dfghj345 # 獲取用戶輸入十進制數(shù)dec = int(input("輸入數(shù)字: ")) print("十進制數(shù)為",dec,":")print("轉(zhuǎn)換為二進制為:", bin(dec))print("轉(zhuǎn)換為八進制為:", oct(dec))print("轉(zhuǎn)換為十六進制為:", hex(dec))
1、算出 2 的 n 次冪不大于要表示的值;
2、用要表示的值減去 2的 n 次方,得到剩下的值后,重復步驟 1,直到最后剩下 0 為止。
舉個例子,十進制的 107 如何轉(zhuǎn)成二進制,先找出 2 的 n 次冪不大于 107 ,算得 n = 6,用 107 減去 2的6次方 得到 43。
重復下來后:107=1x2^6+1x2^5+0x2^4+1x2^3+0x2^2+1x2^1+1x2^0
如果該位用到,用 1 表示,否則用 0 表示。所以 107 用二進制表示為:01101011。
擴展資料
1、十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)原理
眾所周知,二進制的基數(shù)為2,我們十進制化二進制時所除的2就是它的基數(shù)。談到它的原理,就不得不說說關于位權的概念。某進制計數(shù)制中各位數(shù)字符號所表示的數(shù)值表示該數(shù)字符號值乘一個與數(shù)字符號有關的常數(shù),該常數(shù)稱為 “位權 ” 。
位權的大小是以基數(shù)為底,數(shù)字符號所處的位置的序號為指數(shù)的整數(shù)次冪。十進制數(shù)的百位、十位、個位、十分位的權分別是10的2次方、10的1次方、10的0次方,10的-1次方。二進制數(shù)就是2的n次冪。
按權展開求和正是非十進制化十進制的方法。
下面我們開講原理,舉個十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)的例子,假設十進制整數(shù)A化得的二進制數(shù)為edcba 的形式,那么用上面的方法按權展開, 得
A=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4) (后面的和正是化十進制的過程)
假設該數(shù)未轉(zhuǎn)化為二進制,除以基數(shù)2得
A/2=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2
注意:a除不開二,余下了!其他的絕對能除開,因為他們都包含2,而a乘的是1,他本是絕對不包含因數(shù)2,只能余下。
商得:(2^0)+c(2^1)+d(2^2)+e(2^3),再除以基數(shù)2余下了b,以此類推。
當這個數(shù)不能再被2除時,先余掉的a位數(shù)在原數(shù)低,而后來的余數(shù)數(shù)位高,所以要把所有的余數(shù)反過來寫。正好是edcba
2、十進制小數(shù)轉(zhuǎn)換為二進制小數(shù)原理
關于十進制小數(shù)轉(zhuǎn)換為二進制小數(shù)
假設一十進制小數(shù)B化為了二進制小數(shù)0.ab的形式,同樣按權展開,得
B=a(2^-1)+b(2^-2)
因為小數(shù)部分的位權是負次冪,所以我們只能乘2,得
2B=a+b(2^-1)
注意a變成了整數(shù)部分,我們?nèi)≌麛?shù)正好是取到了a,剩下的小數(shù)部分也如此。
值得一提的是,小數(shù)部分的按權展開的數(shù)位順數(shù)正好和整數(shù)部分相反,所以不必反向取余數(shù)了。
參考資料來源:百度百科-二進制
參考資料來源:百度百科-十進制
怎么把十進制小數(shù)轉(zhuǎn)化為二進制
采用"乘2取整,順序排列"法可以十進制小數(shù)轉(zhuǎn)化為二進制,現(xiàn)在以十進制數(shù)0.125為例進行演示,具體操作請參照以下zhidao步驟。
1、方法主要是小數(shù)部分版乘以2,取整數(shù)部分依次從左往右放在小數(shù)點后,直至小數(shù)點后為0,以0.125進行演示。
2、首先將小數(shù)部分0.125乘以權2,得0.25,然后取整數(shù)部分0。
3、然后再將小數(shù)部分0.25乘以2,得0.5,然后取整數(shù)部分0。
4、然后再將小數(shù)部分0.5乘以2,得1,然后取整數(shù)部分1,沒有小數(shù)部分了。
5、得到的二進制的結果是0.001。完成以上設置后,即可把十進制小數(shù)轉(zhuǎn)化為二進制。
十進制數(shù)18轉(zhuǎn)換成二進制數(shù)?怎么算呀
正整數(shù)轉(zhuǎn)換二進制計算方法來:不斷除以二取余數(shù)直到商為1或0,再倒序書寫。
按問題中的正整數(shù)18為例,計算方法如下:
18/2=9 余0;
9/2=4 余1;
4/2=2 余0;源
2/2=1 余0;
1/2=0 余1;
倒序書寫所有余數(shù)為:百10010;
規(guī)范書寫為:(18)10=(10010)2
結果為:十進制數(shù)18轉(zhuǎn)換成二進制數(shù)為10010。
計算過程及結果如圖中所示。
再以正整數(shù)48為例,計算如下:
48/2=24 余0;
24/2=12 余0;
12/2=6 余0;
6/2=3 余0;
3/2=1 余1;
1/2=0 余1;
倒序書寫所有余數(shù)為110000;
規(guī)范書寫為:(48)10=(110000)2
結果為:十進制數(shù)48轉(zhuǎn)換成二進制數(shù)為110000。
如果是在計算機領域,由于計算機內(nèi)部表示數(shù)的字節(jié)單位是定長的,如8位、16位、或32位。所度以,位數(shù)不夠時就需要高位補零,即18轉(zhuǎn)換成二進制以后就是0010010。
C語言編程如何將十進制轉(zhuǎn)換為二進制和十六進制?
//十進制轉(zhuǎn)換成制二進制,轉(zhuǎn)成16進制懶得寫,原理差不多
#include<stdio.h>
int main()
{
int a,sz[100];
int b,c,d=0,l;
for(b=0;b<101;b++) sz[b]=0;
printf("請輸入一個十進制的整數(shù):\n");
scanf("%d",&a);
l=a;
printf("\n");
while(a)
{
zhidaoc=a%2;
a=a/2;
sz[d]=c;
d++;
}
int e;
for(e=100;e>=0;e--)
{
if(sz[e]!=0) break;
}
printf("十進制數(shù)%d轉(zhuǎn)換成二進制數(shù)為:",l);
int i;
for(i=e;i>=0;i--)
printf("%d",sz[i]);
printf("\n");
}
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com