大佬教程收集整理的这篇文章主要介绍了c – double to unsigned int / char,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
根据C99§6.3.1.4脚注50:
现在,我对以下之间的细微差别(这次是C 03!)感兴趣:
@H_502_13@double d1 = 257; double d2 = -2; unsigned char c1 = d1; // undefined,since d1 > 256 unsigned char c2 = d2; // undefined,since d2 < -1和
@H_502_13@double d1 = 257; double d2 = -2; unsigned int i1 = d1; // defined,since d1 <= 2^32 unsigned int i2 = d2; // still undefined,right? unsigned char c1 = i1; // defined,modulo 2^8,so c1 == 1所以第一个c1和第二个c1不能保证比较相等,对吗?上面的引文是否也适用于C 03,还是有其他规则?
编辑:
并且为了使c2定义(对于 – (2 ^ 31-1)< = d2< 0),这是必要的吗?
@H_502_13@double d2 = -2; int sign = (d2<0 ? -1 : 1); unsigned char c2 = sign * (int)abs(d2); // defined,c2 == 2^8-2 ?以上是大佬教程为你收集整理的c – double to unsigned int / char全部内容,希望文章能够帮你解决c – double to unsigned int / char所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。