社区
C语言
帖子详情
C语言位段问题(求高手解答)
happy08god
2012-03-19 03:35:58
struct {
int a:2;
}x;
x.a = 1;
printf(" x.a = %d \n",x.a);
x.a += 1;
printf(" x.a = %d \n",x.a);
请问: 2次打印出x.a的值分别是? 对于第2个值如何理解?
...全文
140
3
打赏
收藏
C语言位段问题(求高手解答)
struct { int a:2; }x; x.a = 1; printf(" x.a = %d \n",x.a); x.a += 1; printf(" x.a = %d \n",x.a); 请问: 2次打印出x.a的值分别是? 对于第2个值如何理解?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happy08god
2012-03-19
打赏
举报
回复
[Quote=引用 2 楼 wyjxhl97 的回复:]
引用 1 楼 nice_cxf 的回复:
大概是1,-2把
有符号数最高位是符号位
++
就是1,-2。
因为a占2bit,并且因为是int a:2;
所以a = 1 01
a = -2 10
与C/C++ code
char b;
b = 128;
printf(" b = %d \n",b);
原理一样
这个结果b = -128 ……
[/Quote]
明白了,原来如此,是因为有符号数最高位是符号位 。 可以通过%x的方式打印出
内存里面的值,如对-2来说,0xfffffffe,确定是负数后,求其补码,为0x00000010 ,又由于
是负数,所以为-2。
谢谢楼上二位!! 结贴给分!!
WYJXHL97
2012-03-19
打赏
举报
回复
[Quote=引用 1 楼 nice_cxf 的回复:]
大概是1,-2把
有符号数最高位是符号位
[/Quote]
++
就是1,-2。
因为a占2bit,并且因为是int a:2;
所以a = 1 01
a = -2 10
与
char b;
b = 128;
printf(" b = %d \n",b);
原理一样
这个结果b = -128 10000000
nice_cxf
2012-03-19
打赏
举报
回复
大概是1,-2把
有符号数最高位是符号位
c语言
编程常见
问题
解答
c语言
编程常见
问题
解答
成为
高手
的必经之路
c语言
问题
集中文版
c
高手
必由之路.
中文译文由朱群英和孙云共同完成。译文从英文 C-FAQ 翻译而来。 (修订版 0.9.4 使用英文 2004年7月3日修订版) 。
c语言
实验答案1.1-15.3
c语言
实验答案,
c语言
概述,数据类型,运算符与表达式,顺序程序设计,选择机构程序设计,循环控制,数组,函数,预处理命令,指针,结构体……
c语言
常见
问题
综合大全
此书籍介绍了程序员在用
c语言
编程时,经常碰到的
问题
,并且把这些
问题
综合在一起
解答
,对c程序员来说值得一看。
面试必备
c语言
考试真题
面试必备
c语言
考试真题
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章