社区
C语言
帖子详情
unsigned int a = -1; if( a != -1) ???
maijian
2008-07-12 07:27:27
unsigned int a = -1;
if( a != -1) {
assert(0);
}
请问有 a != -1 的时候吗?
我好想遇到过, vc7
...全文
268
10
打赏
收藏
unsigned int a = -1; if( a != -1) ???
unsigned int a = -1; if( a != -1) { assert(0); } 请问有 a != -1 的时候吗? 我好想遇到过, vc7
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tangtang02520
2008-07-15
打赏
举报
回复
[Quote=引用 9 楼 277894613 的回复:]
没见过
[/Quote]
277894613
2008-07-14
打赏
举报
回复
没见过
ChamPagneZ
2008-07-12
打赏
举报
回复
[Quote=引用 6 楼 maijian 的回复:]
你是用什么编译器啊? 我 vc7 和 gcc都有编译过,
而且很难重现
[/Quote]
unsigned int最小范围是0-65535,编译器的支持unsigned int的范围只要不比这个范围小就可以.
很多编译器还是16位的,没啥啊...
waji2000
2008-07-12
打赏
举报
回复
在i386平台.
int 型是4个字节的.
当然是
a=(unsigned int)-1=0xffffffff
数值的转换:char,short => int ==> unsigned => long =>double <= float
maijian
2008-07-12
打赏
举报
回复
你是用什么编译器啊? 我 vc7 和 gcc都有编译过,
而且很难重现
ChamPagneZ
2008-07-12
打赏
举报
回复
[Quote=引用 4 楼 maijian 的回复:]
unsigned int a = -1;
a 会变成 4294967295 (0xFFFFFFFF) 这个值的, 不会 0xFFFF啊
[/Quote]
我那个是16位,你是32位,这和编译器有关.
maijian
2008-07-12
打赏
举报
回复
unsigned int a = -1;
a 会变成 4294967295 (0xFFFFFFFF) 这个值的, 不会 0xFFFF啊
K行天下
2008-07-12
打赏
举报
回复
[Quote=引用楼主 maijian 的帖子:]
unsigned int a = -1;
if( a != -1) {
assert(0);
}
请问有 a != -1 的时候吗?
我好想遇到过, vc7
[/Quote]
不会, 类型提升! -1会提升为unsigned int, 所以还是相等的!
ChamPagneZ
2008-07-12
打赏
举报
回复
机器不认识-1
但有0xFFFF(16),无符整数可以取到这个数值
zhangxichao
2008-07-12
打赏
举报
回复
类型升级问题,存在着陷阱!干嘛这么用呢
c语言
unsigned
与signed及其溢出问题
例:
unsigned
int
a = -1;
int
b = -1; pr
int
f("%d %d \n", a, b); // -1 -1 pr
int
f("%u %u", a, b); // 4294967295 4294967295 \u是无符号输出 可以理解为都是正数输出 正常
int
一个 -1 是以补码的形式存储 4字节
int
就是 11111111 11111111 11111111 11111111 在读取的时候 首位是1表示是负数 然后取反码 最后位 +1 就成了 1000.
给
unsigned
int
类型的变量赋值负数会怎么样?
#include<iostream> using namespace std;
int
main() {
unsigned
int
a = -1; cout << a << endl; return 0; } // a=-1,输出为:4294967295 // a=-2,输出为:4294967294 // a=-3,输...
C++
int
和
unsigned
int
比较谁大呢?
#include<iostream> using namespace std;
int
main(){
int
a = -1;
unsigned
int
b = 100; if(a < b){ cout << "a(-1) < b(100)" << endl; } else{ cout << "a(-1) &g
unsigned
int
与
int
相加的问题
以前还真没在上面较过真,结果今天就被鄙视了,特地记下来。先看程序:
int
main() {
int
a = -6;
unsigned
int
b = 4; if(a+b > 0) pr
int
f("a+b>0\n");//这句话被打印 else pr
int
f("a+b<0\n");
int
z = a+b; if(z > 0) pr
int
f("z>0"); else
C++排雷:4.
unsigned
int
与
int
之间的运算、
unsigned
的负数赋值
unsigned
int
与
int
类型的数据进行数值运算后,得到的结果是什么类型的呢? 通过下例检验,为
unsigned
型: #include <stdio.h>
int
main() {
unsigned
int
a = 1;
int
b = -11; if (a + b > 0) pr
int
f("result is :
unsigned
int
\n"); else pr
int
f("result is :
int
\n"); return 0; } 如果运算符两边的运算数类型
C语言
69,381
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章