十進制進制轉十六進制演算法
Ⅰ 關於十進制 轉十六進制演算法
把十進制數除以16,保留余數部分。得到余數以後就不要再往下除得小數。
代碼:
#include "stdio.h" int main()
{
int num=0;
int a[100];
int i=0;
int m=0;
int yushu;
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
printf("請輸入一個十進制數:");
scanf("%d",&num); while(num>0) { yushu=num%16;
a[i++]=yushu;
num=num/16;
} printf("轉化為十六進制的數為:0x"); for(i=i-1;i>=0;i--)//倒序輸出 {m=a[i];
printf("%c",hex[m]); } printf("
");
}
(1)十進制進制轉十六進制演算法擴展閱讀:
十進制轉十六進制
采余數定理分解,例如將487710轉成十六進制:
4877÷16=304....13(D)
304÷16=19....0
19÷16=1....3
1÷16=0....1
這樣就計到487710=130D16
Ⅱ 十進制轉十六進制
1、十六進制的計數方法是滿16進1,所以十進制數16在十六進制中是10,而十進制的17在十六進制中是11,以此類推,十進制的30在十六進制中是1E。
2、輸入格式 ,輸入包含一個非負整數a,表示要轉換的數。0<=a<=2147483647。
3、輸出格式,輸出這個整數的16進製表示。
4、樣例輸出 ,1E:
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main() {
__int64 shi;scanf("%I64d",&shi);
if (shi<=15) {
string ans="";
if (shi<10)
ans += shi+'0';
else
ans += shi-10+'A';
for (int i=ans.length()-1; i>=0; i--)
cout<<ans[i];
}
else {
string ans="";
do {
int tmp = shi%16;
if (tmp<10)
ans += tmp+'0';
else
ans += tmp-10+'A';
shi /= 16;
} while (shi>=16);
if (shi<10)
ans += shi+'0';
else
ans += shi-10+'A';
for (int i=ans.length()-1; i>=0; i--)
cout<<ans[i];
}
return 0;
}
(2)十進制進制轉十六進制演算法擴展閱讀
十六進制轉換為十進制
十六進制數轉十進制數方法:十六進制數按權展開,從十六進制數的右邊第一個數開始,每一個乘以16的n次方,n從0開始,每次遞增1。然後得出來的每個數相加即是十進制數。
Ⅲ 10進制轉化為16進制的演算法是怎樣算
除16取余數得最低1位,然後把商繼續除得第2位,直到商等於0
65036 除 16,余數 12(C),商4064
4064 除 16,余數 0(0),商254
254 除 16,余數 14(E),商15
15除16,余數 15(F),商0,結束
得16進制為 FE0C
Ⅳ 10進制轉16進制的計算方法是怎樣的
10進制轉16進制的計算方法是對於整數部分,用被除數反復除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的余數。另外,所得到的商的最後一位余數是所求二進制數的最高位。具體的過程如下:
比如要轉換120為十六進制數:
1、把要轉換的數,除以16,得到商和余數,
2、那麼要轉換的數是120, 120 ÷ 16,得到商是7,余數是8。
3、「將商繼續除以16,直到商為0……」,現在商是7,還不是0,所以繼續除以16。那就 7 ÷ 16, 得到商是0,余數是7。現在商已經是0。
4、我們兩次計算依次得到余數分別是:8、7,將所有餘數倒序排列,那就是:78。
注意事項:
1、對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。
2、進制轉換是人們利用符號來計數的方法,進制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。
Ⅳ 十進制數轉換為十六進制數的方法是什麼
將十進制數轉換成十六進制數,完全可以將整數部分除16取余按逆序排序;小數部分乘16取整,按順序排序,最後將兩部分合在一起。由於除16不方便,所以一般是將十進制數轉換成二進制數後,再將二進制數轉換成十六進制數。
Ⅵ 十進制數怎樣轉成十六進制數
十進制整數轉換為十六進制整數採用"除16取余,逆序排列"法。
具體做法是:用16整除十進制整數,可以得到一個商和余數;再用16去除商,又會得到一個商和余數,如此進行,直到商為0時為止,然後把先得到的余數作為十六進制數的低位有效位,後得到的余數作為十六進制數的高位有效位,依次排列起來。
例如:256
256/16=16……0
16/16=1…......0
1/16=0......1
故為:100
Ⅶ 十進制數和十六進制數怎麼轉換
16進制就是逢16進1,但我們只有0~9這十個數字,所以我們用A,B,C,D,E,F這六個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。
十六進制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方……
所以,在第N(N從0開始)位上,如果是是數 X (X 大於等於0,並且X小於等於 15,即:F)表示的大小為 X * 16的N次方。
例如十六進數 2AF5, 轉化成10進制的步驟:
用豎式計算:
2AF5換算成10進制:
第0位:
……
Ⅷ 關於10進制轉化成16進制的演算法,請說明的詳細點
16進制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方…所以,在第N(N從0開始)位上,如果是是數 X (X 大於等於0,並且X小於等於 15,即:F)表示的大小為 X * 16的N次方。
例:2AF5換算成10進制:
用豎式計算:
第0位: 5 * 16^0 = 5
第1位: F * 16^1 = 240
第2位: A * 16^2= 2560
第3位: 2 * 16^3 = 8192
...
10997
直接計算就是:
5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997
(8)十進制進制轉十六進制演算法擴展閱讀:
十六進制轉換有16進制每一位上可以是從小到大為0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16個大小不同的數,即逢16進1,其中用A,B,C,D,E,F(字母不區分大小寫)這六個字母來分別表示10,11,12,13,14,15。
十進制數是組成以10為基礎的數字系統,有0,1,2,3, 4, 5, 6, 7, 8, 9十個基本數字組成。十進制,英文名稱為Decimal System,來源於希臘文Decem,意為十。
Ⅸ 十進制轉化為十六進制怎麼算
十進制轉化為十六進制計算方式,簡單說就是整數除以16取余,直到商為0為止,然後從最後一個余數讀到第一個