unsigned和signed比较
2009-11-12 14:21
946 查看
测试如下代码:
unsigned类型也可以存放负数,负数在还是右值常数的时候就在计算机内被保存为了补码形式,赋值给unsigned类型之后,内存中的二进制不变,但是意义变成了一个无符号数,可以见打印结果为10,246,即使将ui的打印格式转换符换成%u也一样。
若要将变量c和ui进行比较,则必须将c强制转换为unsigned char类型(或将ui强转为char类型)计算机才能将两者视为相等,否则两者虽然在内存中表示完全一样,但被视为不等。
unsigned char ui = -10; char c = -10; char i = 10; if ((unsigned char)c == ui) { printf("%d, %d/n", i, ui); } system("pause");
unsigned类型也可以存放负数,负数在还是右值常数的时候就在计算机内被保存为了补码形式,赋值给unsigned类型之后,内存中的二进制不变,但是意义变成了一个无符号数,可以见打印结果为10,246,即使将ui的打印格式转换符换成%u也一样。
若要将变量c和ui进行比较,则必须将c强制转换为unsigned char类型(或将ui强转为char类型)计算机才能将两者视为相等,否则两者虽然在内存中表示完全一样,但被视为不等。
相关文章推荐
- signed和unsigned的比较
- signed 与 unsigned 比较大小的默认转换
- Signed变量和Unsigned变量的比较
- C++ signed和unsigned 大小比较
- signed和unsigned的比较
- signed和unsigned的比较
- signed和unsigned的比较
- signed和unsigned的比较
- signed转换至unsigned(关于符号扩展)
- 认识unsigned和signed取值范围
- 不带signed或unsigned关键字的char型 无符号数? 有符号数? C标准规定为 Implementation Defined !!!
- C语言之unsigned、signed问题
- unsigned和signed、const和define的区别
- 不带signed或unsigned关键字的char…
- c语言中无符号(unsigned)和有符号(signed)的区别
- 关键字short、int、long、char、float、double、signed、unsigned的理解
- unsigned 和signed
- signed和unsigned之间
- signed unsigned 引发的血案
- LinuxC下signed和unsigned