...如何把int型的数值10,转换为16进制格式的0x10,而不是0x0a?_百度知...
发布网友
发布时间:2024-05-04 18:30
我来回答
共4个回答
热心网友
时间:2024-08-02 05:15
这个要求很少见的说,这样凡是带a-f的16进制数就无法传输了
不过可以实现
convert函数实现这样的功能,main为测试函数,可以不管
#include <stdio.h>
int convert(int a)
{
int i = 0, ret = 0;
int t;
while(a)
{
t = a%10;
ret |= t<<(i*4);
a/=10;
i ++;
if(i > 8) break;
}
return ret;
}
int main()
{
int in;
while(~scanf("%d", &in))
printf("0x%x\n", convert(in));
}
热心网友
时间:2024-08-02 05:16
/*******************************************************************
功 能:十六进制数转十进制形式的十六进制数
输 入:十六进制数(参数范围0到99(即0x00到0x63))
返 回:十进制形式的十六进制数
示 例:输入参数0x0A(即十进制10),返回0x10(即十进制16)
********************************************************************/
uchar HEX_To_DEC(uchar HEX)
{
uchar DEC_H, DEC_L; // 十进制的高低位
uchar DEC; // 保存转换为10进制的结果
if((HEX >= 0)&&(HEX <= 99))
{
DEC_H = HEX / 10; //取出高位
DEC_L = HEX % 10; //取出低位
DEC = (DEC_H<<4)|DEC_L;
}
return DEC;
}
热心网友
时间:2024-08-02 05:15
int a = 10;
int hex1 = a / 10;
int hex2 = a % 10;
int hexValue = hex1 * 16 + hex2;
int hexValue = test(a, 1);int test(int value, int x)
{
if (0 == value)
return 0;
return (((value % 10) * x) + test(value / 10, x * 16));
}
热心网友
时间:2024-08-02 05:16
#include <reg51.h> //将十进制显示在12864液晶上,参考“DM12864-A中文字库12864液 晶”
void lcdwcmd(...) //lcdwdat()和lcdwcmd()两个函数自己在网上找液晶相关程序
{...} //这里省略其他液晶相关程序,自己网上找
void lcdwdat(...)
{...}
int main()
{
int a; //假设a为通过相关传感器或其他手段得到的数字,并且已经有值了
int i = 0,g,s,b;
b=a/100 ; //百位位置上的数
s=a%100/10; //十位位置的数
g=a%100%10; //个位位置的数
lcdwcmd(0x80); //写命令函数,0x80是12864液晶第一行第一个显示位置
//0x90是第二行第一个
//0x88是第三行第一个
//0x98是第四行第一个
lcdwdat(0x30+b); //写数据函数
lcdwdat(0x30+s);
lcdwdat(0x30+g);
}