c语言将11转换成16进制,C语言如何把11位16进制字符串转成16进制数?

该博客介绍了C语言中使用`strtol`函数将带有'0x'前缀的十六进制字符串转换为长整型数值的过程。文章详细解释了`strtol`函数的工作原理,包括其参数base的作用,以及如何处理不同进制的转换。通过示例代码展示了如何实现从10进制到2~16进制之间的转换,并提供了错误处理的提示。
摘要由CSDN通过智能技术生成

#include

#include

voidmain()

{

char*p="0x1b";

char*str;

longi=strtol(p,&str,16);

printf("%d\r\n",i);

}

//输出值为27

参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如’0x’前置字符则会使用16进制做转换、遇到’0’前置字符而不是’0x’的时候会使用8进制做转换。

33a9de5cca06085ab2b807bd388aaa7e.png

扩展资料

C语言十进制转2~16进制

#include

voidtrans(intdata,intbase)

{

intx[64],k,i=0;

while(data)

{

x[i]=data%base;

data/=base;

i++;

}

for(k=i-1;k>=0;k--)

if(x[k]<10)

printf("%d",x[k]);

elseif(x[k]<=16)

printf("%c",'A'+x[k]-10);

}

intmain(void)

{

intnum,base;

scanf("%d%d",&num,&base);

if(base<=0||base>16)

{

printf("dataerror\n");

return;

}

printf("number=%dbase=%d\n",num,base);

trans(num,base);

printf("\n");

return0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值