我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 帮我解释下这个输出结果(C++) 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

kenneygf



性别: 帅哥 状态: 该用户目前不在线
头衔: 星星在眨眼~
等级: 前途无量
发贴: 6207
威望: 0
浮云: 1131
在线等级:
注册时间: 2004-05-22
最后登陆: 2009-07-12

5come5帮你背单词 [ oxide /'oksaid/ n. 氧化物 ]


帮我解释下这个输出结果(C++)

#include "iostream"

using namespace std;


union A
{
    struct B
    {
        unsigned int x1:2;
        unsigned int x2:3;
        unsigned int x3:3;
    };
   
    char a;
    B b;
};
   
   
int main(int argc, char *argv[])
{
A a;
a.a=100;

cout<<a.b.x1<<endl<<a.b.x2<<endl<<a.b.x3<<endl;

system("pause");
return 0;
}

//结果   0 1 3
顶端 Posted: 2006-11-06 15:17 | [楼 主]
死亡舞者





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
家族: Counter-Strike
发贴: 155
威望: 0
浮云: 1113
在线等级:
注册时间: 2006-04-30
最后登陆: 2008-06-29

5come5帮你背单词 [ tanker /'tæŋkə/ n. 油轮,空中加油飞机 ]


首先要明白union联合的意思
A的长度为8(2+3+3)
所以{x3,x2,x1} = 100(d) = 011 001 00(b)
很明显:
x1 = 0;
x2 = 1;
x3 = 3;

7楼兜兜的正解
顶端 Posted: 2006-11-24 14:41 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.020620(s) query 6, Time now is:12-19 09:21, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号