定义一个unsigned int a=4294967292u;请问最后的u有必要加吗?
如果我没有加,编译器警告 “[Warning] this decimal constant is unsigned only in ISO C90”这里有三个问题。
1.网上查了以后得知,c语言里面的常量默认是一个32位的有符号整型数 ,所以我很困惑我前面不是定义了unsigned int 了吗?为什么数据后面再加U?不是多此一举吗?
2.char a = 255;
unsigned char b = 255;
printf("a=%d,b=%d\n",a,b);
得到a=-1,b=255; 这里我想问char a = 255 内存中表示应该11111111B,又因为%d按照有符号整数来看所以输出a=-1, 呢么这里b内存中表示不是和a一样吗11111111B?也是%d输出啊
为什么变成255了。
3. 对比1为什么 unsigned char b = 255 后面不加U编译器不报WARNING?
难以自己解决,还是新手希望大神指点,跪谢
C语言中unsigned的问题。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答
悬赏问题
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥200 uniapp长期运行卡死问题解决
- ¥15 latex怎么处理论文引理引用参考文献
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
- ¥15 乘性高斯噪声在深度学习网络中的应用