字符串格%02x式化输出出现FFFFFF解决办法
来源:互联网 发布:中锐网络经营范围 编辑:程序博客网 时间:2024/06/05 04:30
最近做项目,遇到字符串格%02x式化输出出现FFFFFF现象,偶尔出现,大部分时间是好的,网上查阅资料,发现解决办法:
C89标准规定,short和char会被自动提升为int(整形化,类似地,float也会自动提升为double),这样做是为了便于编译器进行优化,使变量的长度尽可能一样,尽可能提升所产生代码的效率。data[i]的值当它是正数的时候也同样进行了符号扩展的,只不过正数是前面加0,用%02x打印的时候那些0被忽略;而补码表示的负数的符号扩展却是前面加1,用%02x打印的时候那些1不能被忽略,因此才按照本来的长度输出来。如没有添加unsigned,则当data[i]>0x7F时(如0X80),格式转换为FFFFFF80!
故计算8位异或校验函数调整如下:
unsigned char calc_crc(const char *buff, int buff_sz)
{
int chsum = 0, it;
for(it = 0; it < buff_sz; ++it)
chsum ^= (int)buff[it];
return (unsigned char)(chsum & 0xFF);
}
参考博客地址:http://blog.csdn.net/avatar1912/article/details/7219345
0 0
- 字符串格%02x式化输出出现FFFFFF解决办法
- Format出现FFFFFF解决办法
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- ffffff
- ffffff
- ffffff
- ffffff
- VC格式化COLORREF为#FFFFFF字符串
- 其他数字出现3次,x出现一次,输出x
- 【自用】C# 字符串转颜色(如:#“FFFFFF” 转为 Color)
- Java编程机试:获取某一字符串中(只要字母),每一个字母出现的次数输出格式为a(x)b(y)c(z).....m(n)
- 关于qt下输出汉字出现乱码的解决办法
- 3ffffff
- cocos2d-x用gl绘图出现偏差解决办法
- c++输入字符串和子字符串 输出子字符串在字符串中出现的次数 并输出字符串中的字母
- 表单
- C++存储类
- linux 添加环境变量
- React Native安卓源码学习(一 )
- 树状数组 求逆序数 poj 2299 离散化
- 字符串格%02x式化输出出现FFFFFF解决办法
- Web Spider实战1——简单的爬虫实战(爬取"豆瓣读书评分9分以上榜单")
- 用C++实现简易文本编辑器
- tensorflow学习笔记之使用tensorflow进行MNIST分类(2)
- elasticsearch 5.0 版本安装head插件
- 无法连接到数据库实例问题
- Android 6.0 运行时权限处理完全解析
- 如何使用Google日志库 (glog)
- Java 8简明教程