當前位置:首頁 » 操作系統 » 進制演算法

進制演算法

發布時間: 2022-01-16 01:02:59

⑴ 十六進制轉換成十進制的具體演算法

十六進制轉換成十進制的具體演算法是:

1、首先明白16進制數(從右到左數是第0位,第1位,第2位……)的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方,依次這樣排列下去。

2、明白ABCDEF表示的二進制數字分別是10,11,12,13,14,15。

3、十六進制轉換成十進制的公式是:要從右到左用二進制的每個數去乘以16的相應次方,然後這些數字相加就是了。

在進行進制轉換時有一基本原則:

轉換後表達的「量」的多少不能發生改變。二進制中的111個蘋果和十進制中的7個蘋果是一樣多的。

十進制中的數位排列是這樣的…… 萬 千 百 十 個 十分 百分 千分……

R進制中的數位排列是這樣的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3……

可以看出相鄰的數位間相差進制的一次方。

⑵ 請問進制的轉換演算法

參考
http://www.2vvv.com/Article/ShowArticle.asp?ArticleID=2717&Page=1
http://bbs.wangmeng.cn/dispbbs.asp?BoardID=5&replyID=204&id=75&skin=0

⑶ 二進制轉十六進制演算法(舉例)

二進制轉十六進制

二進制數要轉換為十六進制,就是以4位一段,分別轉換為十六進制。

從右到左 4位一切

例如 100111110110101

左邊不滿4位的可以用0補滿 0100,1111,1011,01012

進制0000對應16位進制0

0001>>>1

0010>>>2

0011>>>3

0100>>>4

0101>>>5

0110>>>6

0111>>>7

1000>>>8

1001>>>9

1010>>>A

1011>>>B

1100>>>C

1101>>>D

1110>>>E

1111>>>F

所以上面的2進制轉為16進制為 4FB5

(3)進制演算法擴展閱讀

十六進制--->二進制

反過來,當看到 FD時,迅速將它轉換為二進制數方法

先轉換F:

看到F,需知道它是15,然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。

接著轉換 D:

看到D,知道它是13,13如何用8421湊呢?應該是:8 + 4 + 1,即:1101。

所以,FD轉換為二進制數,為: 1111 1101

由於十六進制轉換成二進制相當直接,所以,我們需要將一個十進制數轉換成2進制數時,也可以先轉換成16進制,然後再轉換成2進制。

⑷ 16進制轉換2進制演算法

將十六進制數轉換為二進制數:

方法一:

將每一位的十六進制數轉換為相應的4位二進制數,參照轉換表直接轉換如下:

方法二:

先把16進制每個數轉為十進制,十六進制的1-9也對應十進制的1-9,十六進制的A-F對應十進制的10-15,再通過十進制轉化為二進制(將十進制數連續除2,直至得0餘x,並將每次的余數從右至左記下),最後將所得的四位二進制數順序排列。

舉例:

對於十六進制數字F6:

採用方法一:

F=1111,6=0110

所得即為11110110

採用方法二:

f=15 除2得 7餘1

7 除2得 3餘1

3除2得1餘1

1除2得0餘1

將余數從下往上(從1的余數1到15的余數1)排列,所以f=1111

同理6=0110

得f6=11110110

⑸ 二進制轉十進制,十進制轉二進制的演算法(求助)

二進制轉換為十進制:

方法:「按權展開求和」,該方法的具體步驟是先將二迸制的數寫成加權系數展開式,而後根據十進制的加法規則進行求和 。

規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。

十進制轉換為二進制:

一個十進制數轉換為二進制數要分整數部分和小數部分分別轉換,最後再組合到一起。

整數部分採用 "除2取余,逆序排列"法。具體做法是:用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為小於1時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。

小數部分要使用「乘 2 取整法」。即用十進制的小數乘以 2 並取走結果的整數(必是 0 或 1),然後再用剩下的小數重復剛才的步驟,直到剩餘的小數為 0 時停止,最後將每次得到的整數部分按先後順序從左到右排列即得到所對應二進制小數。

通用進制轉換:

不同進制之間的轉換本質就是確定各個不同權值位置上的數碼。轉換正整數的進制的有一個簡單演算法,就是通過用目標基數作長除法;余數給出從最低位開始的「數字」。

(5)進制演算法擴展閱讀:

1、十進制整數轉二進制整數:

十進制整數轉換為二進制整數 十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。

2、十進制小數轉換為二進制小數:

十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。

然後把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,後取的整數作為低位有效位。

參考資料:網路-二進制

⑹ 進制怎麼算

計算機的進制計算方法

二進制轉十進制方法:「按權展開求和」

例: (1011.01)2 =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10 =(8+0+2+1+0+0.25)10 =(11.25)10 (2)十進制轉二進制 · 十進制整數轉二進制數:「除以2取余,逆序排列」。

(6)進制演算法擴展閱讀:

對於任何一個數,我們可以用不同的進位制來表示。比如:十進數57(10),可以用二進製表示為111001(2),也可以用五進製表示為212(5),也可以用八進製表示為71(8)、用十六進製表示為39(16),它們所代表的數值都是一樣的。

⑺ 十六進制計算方法

0-9對應0-9;

A-F對應10-15;

十六進制數的加減法的進/借位規則為:借一當十六,逢十六進一。

十六進制數同二進制數及十進制數一樣,也可以寫成展開式的形式。

十進制整數轉十六進制數:「除以16取余,逆序排列」(除16取余法)

例:(1765)10=(6E5)2

1765/16=110.......5

110/16=6........14

616=0......6

因為14對應E

十六進制數轉換成二進制數:把每一個十六進制數轉換成4位的二進制數,就得到一個二進制數。

十六進制數字與二進制數字的對應關系如下:

0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C

0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D

0010 -> 2 0110 -> 6 1010 -> A 1110 -> E

0011 -> 3 0111 -> 7 1011 -> B 1111 -> F

例:將十六進制數5DF.9 轉換成二進制:

5 D F . 9 0101 1101 1111 .1001

即:(5DF.9)16 =(10111011111.1001)2

例:將二進制數1100001.111 轉換成十六進制:

0110 0001 . 1110 6 1 . E

即:(1100001.111)2 =(61.E)16

(7)進制演算法擴展閱讀:

進制轉換的理論:

1、 二進制數、十六進制數轉換為十進制數:

用按權展開法把一個任意R 進制數a n a n-1 ...a1a 0 . a -1 a -2...a -m轉換成十進制數,其十進制數值為每一位數字與其位權之積的和。

a n ×Rn+ a n-1×R n-1 +…+ a 1×R 1 + a 0×R 0 + a -1 ×R -1+ a -2×R -2+ …+ a -m ×R -m

2、 十進制轉化成R 進制十進制數輪換成R 進制數要分兩個部分:

整數部分要除R 取余數,直到商為0,得到的余數即為二進數各位的數碼,余數從右到左排列(反序排 列) 。小數部分要乘R 取整數,得到的整數即為二進數各位的數碼,整數從左到右排列(順序排列) 。

3、十六進制轉化成二進制:每一位十六進制數對應二進制的四位,逐位展開。

4、 二進制轉化成十六進制:將二進制數從小數點開始分別向左(對二進制整數)或向右(對二進制小數)每四位組成一組,不足四位補零。

⑻ 16進制的演算法,請舉例~

例如將十進制數55轉化為十六進制

55÷16=3.....7

3÷16=0.....3

55的十內六進容制是37

例如將十六進制數37化為十進制數

37=3*16+7*1=55

(8)進制演算法擴展閱讀:

在歷史上,中國曾經在重量單位上使用過16進制,比如,規定16兩為一斤。

如今的16進制則普遍應用在計算機領域,這是因為將4個位元(Bit)化成單獨的16進制數字不太困難。1位元組可以表示成2個連續的16進制數字。可是,這種混合表示法容易令人混淆,因此需要一些字首、字尾或下標來顯示。

⑼ 所有進制的演算法

#include <stdio.h>void a();void b();void c();void main(){ int s; do { printf("0.退出\n1.十進制~二進制\n2.十進制~八進制\n3.十進制~十六進制\n請選擇:"); scanf("%d",&s); if(s==0) { break; } switch(s) { case 1: a();break; case 2: b();break; case 3: c();break; default:printf("輸入有誤!請輸入0~4之間的數\n");break; } }while(1);}void a(){ int num,p[100],n=0,i; printf("請輸入一個十進制整數:"); scanf("%d",&num); while(num!=0) { p[n]=num%2; num/=2; n++; } for(i=n-1;i>=0;i--) { printf("%d",p[i]); } printf("\n");}void b(){ int num,p[100],n=0,i; printf("請輸入一個十進制整數:"); scanf("%d",&num); while(num!=0) { p[n]=num%8; num/=8; n++; } for(i=n-1;i>=0;i--) { printf("%d",p[i]); } printf("\n");}void c(){ int num,p[100],n=0,i; printf("請輸入一個十進制整數:"); scanf("%d",&num); while(num!=0) { p[n]=num%16; num/=16; n++; } for(i=n-1;i>=0;i--) { if(p[i]<10) { printf("%d",p[i]); } else { switch(p[i]) { case 10: printf("A"); break; case 11: printf("B"); break; case 12: printf("C"); break; case 13: printf("D"); break; case 14: printf("E"); break; case 15: printf("F"); break; } } } printf("\n");} 答案補充 10進制數轉化成R進制數就是不斷地 取余、整除,最後把所有餘倒序排列 比如:6轉化成2進制數的步驟是,6取2的余是0,整除得3,3取2的余是1,整除得1,1取2的余是1,整除2得0,計算結束,再把所有餘倒序排列,即110。
其它進制也是同樣的道理,如果進制大於10,就要用ABCD來分別表示10進制中的(10、11、12、13、14),可以去查詢下權的概念

⑽ 進制數的演算法

2到8: 從右邊開始每3個數隔開分開轉為2進制 如 1,110,110=166
8-2: 每一位分別用3位2進制展開,不夠3位的左邊補0
如 :123=001,010,011=1010011
2-10: 按權展開,1或者0乘以2的位數減一次方
如:110101 共6位 1*2的6次方+1*2的5次方+0*2的4次方。。。類推
10-2: 除2取余 倒序取值
如8 7/2=3 餘1 3/2=1 餘1 1/2=0 餘1 結果111
13 13/2=6~1 6/2=3~0 3/2=1~1 1/2=0~1 結果1101

好學生加油吧!

熱點內容
資料庫設計模板 發布:2024-11-15 00:47:25 瀏覽:825
編程的悟性 發布:2024-11-15 00:47:24 瀏覽:733
主流可編譯語言 發布:2024-11-15 00:42:23 瀏覽:729
excel緩存清除 發布:2024-11-15 00:39:53 瀏覽:486
機械鍵盤可編程 發布:2024-11-15 00:39:09 瀏覽:912
php判斷字元開頭 發布:2024-11-15 00:35:33 瀏覽:507
網易蘋果游戲怎麼轉移到安卓 發布:2024-11-15 00:07:52 瀏覽:270
win7php環境搭建 發布:2024-11-15 00:06:55 瀏覽:17
erpjava 發布:2024-11-14 23:52:23 瀏覽:253
電腦版地平線四怎麼連上伺服器 發布:2024-11-14 23:46:42 瀏覽:472