本文目錄一覽:
c語言十進制轉化為十六進制
十進制轉化為十六進制代碼:
#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(num0) { 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(“\n”);
}
程序運行結果:
擴展資料:
進制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。位權是指,進位制中每一固定位置對應的單位值。
舉例:二進制數轉換為十進制數
二進制數第0位的權值是2的0次方,第1位的權值是2的1次方……
所以,設有一個二進制數:0110 0100,轉換為10進制為:
下面是豎式:
0110 0100 換算成十進制
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0
公式:第N位2(N)
—————————
100
用橫式計算為:
0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1* 26 + 0 * 27 = 100
0乘以多少都是0,所以我們也可以直接跳過值為0的位:
1 * 22 + 1 * 25 +1*26 = 100
參考資料:
百度百科-進制轉換
在c語言中用最簡單的方法把十進制轉化為十六進制
代碼如下:
#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(num0)
{
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(“\n”);
}
程序運行結果:
擴展資料
C語言中,十進制轉換十六進制,可以先輸入十進制整數,然後去拼十六進制,十六進制由數字 0~9、字母 A~F 或 a~f(不區分大小寫)組成,使用時必須以0x或0X(不區分大小寫)開頭,只需把二進制除以16得到餘數去上面定義的hex[16]數組進行取值接可以得到轉換的數字。
參考資料:百度百科-十六進制
C語言十進制轉十六進制數
C語言十進制轉十六進制數的源代碼如下:
#includebits/stdc++.h
using namespace std;
void IntZh0x(int n)
{int s=n%16;
if(n/16!=0) IntZh0x(n/16);
if(s9)
{
if(s==15) cout”F”;
else if(s==14) cout”E”;
else if(s==13) cout”D”;
else if(s==12) cout”C”;
else if(s==11) cout”B”;
else if(s==10) cout”A”;
}
else couts;
}
int main(){
int n;
cinn;
IntZh0x(n);
return 0;
}
擴展資料
1、十六進制數轉換成十進制數解,其值為各個位碼乘以位權然後完全相加。
2、十六進制就是把 4 個二進制位組合為一位來表示,每一位有0b0000 ~ 0b1111 共 16 個值,用 0 ~ 9 再加上 A ~ F(或 a ~ f)表示,那麼它自然就是逢十六進位,它本質上同二進制是一樣的,是二進制的一種縮寫形式。
原創文章,作者:QTUB,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/131564.html