66问答网
所有问题
C语言中为什么不能将无符号整数与有符号整数比较
如题所述
举报该问题
推荐答案 推荐于2017-11-24
不是不能比,是你未比出正确结果,两个数的区间不一样,可以内码却有可能相同,你得如此比法,例如:
int si;
unsigned int
ui;
ui = si = -100;
int res = (si<0) ? -1 : (ui>>31) ? 1 : (ui-si);
当有符号数小于0时,不用比,总是有符号的小,
当无符号数最高位为1时不用比,总是无符号位大,
有符号数不小于0而无符号数最高位不是1时才做比较,就可以得出正确结果
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/p2svxsxpv.html
其他回答
第1个回答 2012-01-12
没这一说吧
int main()
{
int a;
unsigned b;
a=-1;
b=10;
if ( a>b)
printf("a>b\n");
else
printf("a<=b\n");
return 0;
}
以上会输出 a>b
因为在无符号与有符号数进行运算时(计算机中的运算,非数学意义上的运算),系统会自动将有符号数看成(也可以叫转换,实际没有转换)无符号数,然后进行比较。
举例:假定一个数是8位,一个字节表示
-1=11111111(补码),相当于无符号数255
10=00001010
第2个回答 2012-01-12
计算机组成原理有 有符号整数的最高位是1,无符号则可能为1可能为0,如果为0,比较会出错。
相似回答
在
C语言中为什么
要
把
int分为
有符号和无符号
答:
C语言中为什么不能将无符号整数与有符号整数比较 不是不能比,
是你未比出正确结果
,两个数的区间不一样,可以内码却有可能相同,你得如此比法,例如: int si; unsigned int ui; ui = si = -100; int res = (si<0) ? -1 : (ui>>31) ? 1 : (ui-si); 当有符号数小于0...
C语言中有符号的与无符号
的if
比较
结果
不
正确?
答:
因为它们的类型不同,在进行比较前,先自动类型转换:b的值-1就按unsigned int 转换为4294967295,然后跟1200比较,它就出现b>a的情况了。你不妨unsigned int
c
=4294967295;然后,if(b==c)printf("b==c");试试看,是不是这样?
C语言
-
带符号整数和无符号整数
问题
答:
数字是有正负之分的,而正数前面的正号是可以省略的,
无符号
数实际上就是大于等于零的数,在
C语言中
,如果定义一个变量为无符号型,那么这个变量只能表示大于等于零的数,而
有符号
数就是包含负数,如果定义一个变量为有符号型,那么这个变量可以赋值为负数也可以赋值为正数。比如,无符号的int型,表示的...
C语言
-
带符号整数和无符号整数
问题
答:
回答:数字是有正负之分的,而正数前面的正号是可以省略的,
无符号
数实际上就是大于等于零的数,在
C语言中
,如果定义一个变量为无符号型,那么这个变量只能表示大于等于零的数,而
有符号
数就是包含负数,如果定义一个变量为有符号型,那么这个变量可以赋值为负数也可以赋值为正数。比如,无符号的int型,表示的范...
关于
C语言里
的
有符号整数和无符号整数
的问题
答:
无符号整数
是 最小为0,最大为当前系统定义的INT类型最大值
有符号整数
是从负多少到正多少,如:-32767到 32768 long int 比 int 表示数的范围更大,比如假设int占一个字节,long int占用两个字节,所以可表示的范围更大 其实没必要在这上面过于深究 比如一个循环计数 i ,如果你要循环的次数...
C语言中
的"
无符号的整数
"是
什么
意思?
答:
回答:计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这个数就是
有符号整数
。如果最左边这一位不用来表示正负,而是和后面的连在一起表示整数,那么就不能区分这个数是正还是负,就只能是正数,这就是
无符号整数
。
大家正在搜
将c语言的整数设为整数类I
C语言n不是整数怎么表示
c语言整数用什么表示
c语言判断一个数是否为整数
c语言整数除以整数
c语言合法整数是什么
带符号整数使用什么位表示
c语言中咋表示整数
c语言计算整数各位数字之和
相关问题
关于C语言里的有符号整数和无符号整数的问题
C语言中有符号整型和无符号整型的区别
在C语言中长度相同的有符号与无符号整型数间,原样赋值时为什么...
C语言编程有符号和无符号整型变量显示问题
c语言中整型数据中,有符号与无符号是什么意思,能举例说明下么...
C语言中2个无符号整数相减是否可以得到有符号数?或者小数减大...
c语言中有符号和无符号整型数据处理区别
在c语言(vc6)中比较两个无符号整数大小的方法(不能使用>...