文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档> 有符号数和无符号数之间的转换

有符号数和无符号数之间的转换

时间:2010-03-27  来源:allen_yue

如何转换int和unsign int???   char foo(void)
{
unsigned int a = 6;
int b = -20;
char c;
(a + b > 6) ? (c = 1) : (c = 0);
return c;
}
a+b的值不是-14,而是一个unsigned int类型的数4294967382,这个数字是如何来的?
(a + b > 6) ? (c = 1) : (c = 0); //这个地方 要有一个隐藏的类型转换 也就是int b转换成unsigned int类型 因为做运算的时候 要精度相同 避免丢失数据 因为是无符号的 自然就a+b>6了 所以选择C=1
    至于怎么转换,其实很简单,int和unsigned int相比,只是符号位的区别,将以前表示符号的符号位看成是表示数值的就行!

比如:

对于4294967382
二进制是:
100000000000000000000000001010110

把第一位看做符号位,是负号,后面那一串,就是14

所以是-14
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载