在c语言中用最简单的方法把十进制转化为十六进制

Python014

在c语言中用最简单的方法把十进制转化为十六进制,第1张

代码如下:

#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-1i>=0i--)//倒序输出 {

m=a[i]

printf("%c",hex[m]) 

printf("\n") 

}

程序运行结果:

扩展资料

C语言中,十进制转换十六进制,可以先输入十进制整数,然后去拼十六进制,十六进制由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头,只需把二进制除以16得到余数去上面定义的hex[16]数组进行取值接可以得到转换的数字。

参考资料:百度百科-十六进制

十进制数 由 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 可用于转换整数。

根据10进制转换为16进制的规则,编写C语言程序将10进制数转换为16进制数。

具体实现方法可参考如下程序:

#include<stdio.h>

void main()

{

    int i, x // x表示欲转换的10进制数

    int data[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("\n")

}