㈠ 將10進制數轉化為16進制數和8進制數的c語言代碼
摘要 您好,很高興為您解答。將10進制數轉化為16進制數和8進制數的c語言代碼,步驟如下哦親~:
㈡ C語言將一個十進制的整數轉換成十六進制的字元串
要轉成字元串 其實不需要自己寫多少程序 借用sprintf就可以了
char s[20];
int a;
scanf("%d",&a);
sprintf(s, "%x", a);
這樣 s中就是a的16進制字元串了。
㈢ c語言十進制轉化為十六進制原理
十進制數 由 0到9 組成, 逢10 進1, 各個位的權 是 10 的 i 次方,整數部分 i 從 0 起算。小數部分 i 從 -1 起算。
十六進制 由 0到十五組成,逢16進1,各個位的權 是 16 的 i 次方,整數部分 i 從 0 起算。小數部分 i 從 -1 起算。
十六進制 的十到十五用 a,b,c,d,e,f 表示。
整數部分,十進制 轉化為十六進制 可以用 不斷地 除以16 「取余數」 的方法 得到。
小數部分,十進制 轉化為十六進制 可以用 不斷地 乘16「取整數」的 的方法 得到。
例如:十進制 17852.5 轉化為十六進制,
17852/16 = 1115 余 12 -- c
1115/16 = 69 余 11 -- b
69/16 = 4 余 5
4/16 = 0 余 4
整數部分 得16進制: 45bc
.5 * 16 = 8.0 取 8 余 0
小數部分 得16進制: .8
合起來 0x45bc.8
c 語言程序 printf("%x", 17852); %x格式 輸出 16進制: 45bc 可用於轉換整數。
㈣ C語言編程:怎麼把一個十進制數轉換成為一個十六進制數
第一種:用來糊弄老師的,輸入一個數採用16進制格式輸出
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
printf("%x", num);
return 0;
}
第二種:
#include <stdio.h>
#include <string.h>
char oNumTable[6] = {'A', 'B', 'C', 'D', 'E', 'F'};
void dToO(int, char*);
int main()
{
int dNum;
char oNum[100] = {0};
//輸入一個十進制數
scanf("%d", &dNum);
//調用轉換函數,將十進制轉換成以字元串表示的十六進制
dToO(dNum, oNum);
//輸出以字元串表示的16進制數據
printf("%s\n", oNum);
return 0;
}
void dToO(int dNum, char* oNum)
{
char temp[100] = {0};
for (int i = 0; (dNum) && (i < 100) ; i++) {
temp[i] = (dNum % 16);
if (temp[i] > 9) {
temp[i] = oNumTable[temp[i] - 10];
}
else{
temp[i] += '0';
}
dNum /= 16;
}
char* p = temp;
while (*(p+1)) p++;
for (int i = 0; p != temp - 1; i++, p--) {
oNum[i] = *p;
}
}
㈤ 10進制轉16進制c語言
用一個字元數組,初始化為「1,2,3,4,5,6,7,8,9,A,B,C,D,E,F」,也就是0到15用十進制的數不斷模上16,得到的余數進入到一個棧中。計算完之後從棧中取值,在數組當中去找出數字,輸出就可以了
㈥ 用C語言編程如何將十進制轉換成十六進制
int a=10;
printf("%X",a);
列印出的是A,也就是16進制的10
㈦ C語言編寫十進制轉為十六進制
昨天沒來及看收藏了你的問題,我看樓上的也可以,不過又給你寫了一個,看下吧,有不懂的可以追問。#include<stdio.h>
main()
{
int a,j,m=0,i=0;
char b[16]="0123456789ABCDEF",c[20],t;
printf("請輸入一個十進制數a:\n");
scanf("%d",&a);
while(a!=0)
{
j=a%16;
c[i++]=b[j];/*正著把求余得到的數賦給數組c[20]*/
a=a/16;
m++;
}
for(i=0;i<m/2;i++){
t=c[i];/*這幾步是把數組c[20]各元素逆置*/
c[i]=c[m-i-1];
c[m-i-1]=t;
}
for(i=0;i<m;i++)
printf("%c",c[i]);/*所輸出的就會按照求余所得的數逆序輸出了*/
printf("\n");
}測試用例:用例二:
㈧ 用C語言編程實現10進制數值轉16進制字元串
#include
<stdio.h>
#define
N
8
void
tran(int
num,int
k)
{
int
arr[N],i;
for
(i=0;i
<N;i++)
{
arr[i]=num%k;
num=num/k;
if
(num==0)
break;
}
printf("轉換為%d進制數為:
",k);
for
(;i>=0;i--)
switch
(arr[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;
default:
printf("%d",arr[i]);
}
printf("
");
}
void
main()
{
int
num,choo;
loop:
printf("請選擇功能:0.退出
1.十進制轉二進制
2.十進制轉八進制
3.十進制轉十六進制
");
scanf("%d",&choo);
switch
(choo)
{
case
1:
printf("請輸入要轉換的十進制數:");
scanf("%d",&num);
tran
(num,2);
goto
loop;
case
2:
printf("請輸入要轉換的十進制數:");
scanf("%d",&num);
tran
(num,8);
goto
loop;
case
3:
printf("請輸入要轉換的十進制數:");
scanf("%d",&num);
tran
(num,16);
goto
loop;
case
0:break;
default
:
printf("輸入有誤!請重新輸入!
");
goto
loop;
}
}