永发信息网

诡异输出。。。高手进

答案:2  悬赏:60  手机版
解决时间 2021-08-18 04:28
union U
{
struct S
{
unsigned char a : 3;
unsigned char b : 3;
unsigned char c : 2;
}s;

unsigned char c;
};

int main( )
{
U u;
u.c = 100;
cout << (int)u.s.c << endl;
}
输出1耶
最佳答案

10换成二进制是 01100100


分成 3 3 2 就是 100 100 01


u.s.a = 100即4


u.s.b = 4


u.s.c = 1


全部回答

不诡异,这很正常。对于联合体,其中的变量是公用同一块内存的,又因为100的二进制表示是:01100100,但是在Intel处理器中的存储形式却是地位在前高位在后的。所以在结构体S中是从后往前取二进制值的,后三位100->4,再三位100->4,再两位01->1,所以结构体S中的结果就是a=4,b=4,c=1.

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我用UC浏览器打开一个网页就的十几KB用QQ浏览
下次厄尔尼诺什么时候到来
好听的歌 有哪些
我想开一家室内墙壁画连锁店 但不知道从那加
我国从东部向西部降雨逐渐减少的原因?
南召县南阳王六文体店地址在什么地方,想今天
我单身,情人该跟谁过
爱一个人为什么这么难啊
应用电子技术前景出路如何
刑事罪被判刑后他的帐户会被冻结吗
电脑两旁怎么有两条黑条?
为什么我玩游戏上面写着无法找到相兼容的DIre
人生来就是受苦的,因为刚生下来是哭声而不是
怎么玩地主?
人咋这么多烦恼?
推荐资讯
谁有顾漫的所有完结的txt小说
永恒之塔 为什么我了账号登不进去啊。
为什么现在的工资这么低
急!创造超越的人生答案,求求你们
西平县驻马店双沟酒业哪位知道具体地址啊
五年级上册语文练习六健康小顾问怎么做?
咸安区中国银行(咸宁南山支行)在哪里啊,我有
家园昵称在哪修改?谢谢
青少年意外伤害的预防与自救
生化之我是丧尸
广东外语外贸大学去年文科招生最低分是多少
monkey likes eat bananas 是用eat 还是eats
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?