您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> char printf %x问题

char printf %x问题

来源:网络整理     时间:2016/6/23 23:02:49     关键词:

关于网友提出的“ char printf %x问题”问题疑问,本网通过在网上对“ char printf %x问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: char printf %x问题
描述:

char sOption[5];
memset(sOption,0x80,5);
for(i=0;i<5;i++)
printf("\nsOption[%d]=%x\t",i,sOption[i]);
                   打印出来的是
sOption[0]=ffffff80
sOption[1]=ffffff80
sOption[2]=ffffff80
sOption[3]=ffffff80
sOption[4]=ffffff80
                    unsigned char sOption[5];
memset(sOption,0x80,5);
for(i=0;i<5;i++)
printf("\nsOption[%d]=%x\t",i,sOption[i]);
                   打印出来的是
sOption[0]=80
sOption[1]=80
sOption[2]=80
sOption[3]=80
sOption[4]=80
为什么前面那种方式会打印前面的FFFFFF呢?


解决方案1:

%d都会扩展为int类型,0x80的符号位为1,所以做符号扩展的时候,无符号数前面填充0为00000080,有符号数前面填充1为ffffff80。


以上介绍了“ char printf %x问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2016946.html

相关图片

相关文章