首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于C里的符号数运算有关问题

2012-06-03 
关于C里的符号数运算问题unsigned int i 1unsigned int j 9if((i-j)0){i++}else{i--}这里的i-j

关于C里的符号数运算问题
unsigned int i = 1;
unsigned int j = 9;

if((i-j)>=0)
{
  i++;
}

else
{
  i--;
}

这里的i-j的值是多少?是执行if里边的还是else里边的?


[解决办法]
执行if语句,因为结果是unsigned型,结果永远为整数,如果int是4个字节结果为0xfffffff8=4294967288,int是两个字节结果为0xfff8=65528
[解决办法]
i和j都是无符号类型的数据,那么他们的结果也是无符号类型的。即使是i是无符号的,而j是有符号的,那么i-j的结果也是无符号的,因为在运算前j会有一个隐式类型提升。

热点排行