當前位置:首頁 » 編程語言 » c語言十進制轉化為16進制賦值
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言十進制轉化為16進制賦值

發布時間: 2022-05-02 20:38:43

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;
}
}

㈡ 用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;
}
}

㈢ c語言怎麼把10進制轉換為16進制

沒明白你的意思
1,將10進制數除以16,余數是16進制數的第一位,再用商除以16,余數是第二位,這么循環下去,直到商小於16。如,100/16=6---4,6小於16;所以十進制100對應的16進制是64;
2,c語言中將整型數以十或者16進制的格式輸出
具體請看以下代碼
#include<stdio.h>
int main(void)
{
int a=0x67,b=100;
printf("%d\n%#x",a,b);
return 0;
}
這會輸出103
0x64
以上兩個答案有你想要的嗎?

㈣ 在C語言中如何將10進制轉換成16進制

根據10進制轉換為16進制的規則,編寫C語言程序將10進制數轉換為16進制數。


具體實現方法可參考如下程序:

#include<stdio.h>
voidmain()
{
inti,x;//x表示欲轉換的10進制數
intdata[10],index=0;//data數組存放轉換後的16進制數,index表示下標
scanf("%d",&x);//接受欲轉換的10進制數
for(i=0;i<10;i++)//對數組data進行初始賦值操作
data[i]=0;
printf("%d對應的16進制為:",x);
//反復相除取余,並將余數存放在data數組中
while(x>0)
{
data[index]=x%16;
x=x/16;
index++;
}
//逆序輸出data數組中的元素,即為10進制數對應的16進制數
for(i=index-1;i>=0;i--)
printf("%d",data[i]);
printf(" ");
}

㈤ 求c語言將十進制數轉換為16進制的函數

c語言將十進制數轉換為16進制的函數:

#include<stdio.h>

main()
{
int u10;
char u16[10];
int w=0,a,b,i;

printf("請輸入一個數字-->");
scanf("%d",&u10);
if(u10==0)
{
u16[0]='0';
w++;
}
else
{
a=u10;
while(a)
{
b=a%16;
if(b<10)
{
u16[w]='0'+b;
}
else
{
u16[w]='A'+b-10;
}
a=a/16;
w++;
}
}
printf(" ");
printf("%d(10)轉換為16進制數字為:",u10);
for(i=w-1;i>=0;i--)
{
printf("%c",u16[i]);
}
printf(" ");
}

(5)c語言十進制轉化為16進制賦值擴展閱讀:

十進制數轉換為二進制數方法

十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換後,再加以合並。

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

2.十進制小數轉換為二進制小數

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

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

㈥ 在c語言中用最簡單的方法把十進制轉化為十六進制

代碼如下:

#include"stdio.h"
intmain()
{
intnum=0;
inta[100];
inti=0;
intm=0;
intyushu;
charhex[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(" ");
}

程序運行結果:

(6)c語言十進制轉化為16進制賦值擴展閱讀

C語言中,十進制轉換十六進制,可以先輸入十進制整數,然後去拼十六進制,十六進制由數字 0~9、字母 A~F 或 a~f(不區分大小寫)組成,使用時必須以0x或0X(不區分大小寫)開頭,只需把二進制除以16得到余數去上面定義的hex[16]數組進行取值接可以得到轉換的數字。

㈦ C語言 如何將一個十進制數轉換成十六進制數賦值給一個變數

不需要轉換。只要在輸出的時候規定就可以。如一個十進制數20.如果你列印的時候是十進制輸出那麼顯示就是20.如果你列印的時候是16進制,那麼輸出就是14.

㈧ C語言十進制轉十六進制數

C語言十進制轉十六進制數的源代碼如下:

#include<bits/stdc++.h>

using namespace std;

void IntZh0x(int n)

{int s=n%16;

if(n/16!=0) IntZh0x(n/16);

if(s>9)

{

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 cout<<s;

}

int main(){

int n;

cin>>n;

IntZh0x(n);

return 0;

}

(8)c語言十進制轉化為16進制賦值擴展閱讀

1、十六進制數轉換成十進制數解,其值為各個位碼乘以位權然後完全相加。

2、十六進制就是把 4 個二進制位組合為一位來表示,每一位有0b0000 ~ 0b1111 共 16 個值,用 0 ~ 9 再加上 A ~ F(或 a ~ f)表示,那麼它自然就是逢十六進位,它本質上同二進制是一樣的,是二進制的一種縮寫形式。

㈨ 關於C語言十進制轉十六進制

for(l=i;l!=0;l--)
少俠,你這個l的初值賦錯了,應該是l=i-1進;判定條件也錯了是l>=0,因為你m是從0開始的,而上個循環結束後,i指向的實際是數組結尾的\0.。。
另外,你要是想輸出8進制和16進制數,printf("%o
%X");就可以了,不用這么費勁吧。。