本文目錄一覽:
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-tw/n/131564.html