16进制以0x开头,后面跟数字0~9或字母A~F(小写也可以),如:0x2D(16进制数2D)
1、十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。
2、十六进制与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。
举例如下:
int x=23
printf("%x", x) // 以16进制格式输出,输出17
printf("%o", x) // 以8进制格式输出,输出27
大家好,开发过程中,经常会遇到16进制方式输出数据,现把代码实现粘贴出来,希望对大家有用,其他进制输出,原理实现类似,只是输出格式做了变换。
void hex_log_print(uint8 *pdata, int size)
{
int32 i
uint8 buf[100]
uint8 len
int count
int log_len
int remain_len
int line_len
if (size <= 0)
{
KING_SysLog("fail:hex_log_print,size:%d", size)
return
}
count = 0
log_len = size
do
{
remain_len = log_len - count
if (remain_len >16 )
{
line_len = 16
}
else
{
line_len = remain_len
}
len = 0
for (i = 0 i <line_leni++)
{
len += snprintf((char *)buf + len, sizeof(buf), "0x%02X, ", pdata[count + i])
}
buf[len] =''
KING_SysLog("%sr ", buf)
count += line_len
}while(count <log_len)
}
计算机内部用 2 进制。程序编写 可以用 10进制,8进制,和 16进制。
例如: 987 -- 是10进制数; 0x08FF -- 是16进制数; 035 -- 是8进制数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)