首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 问大家关于一个位段的问题,谢谢了
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-26 21:51:54 楼主
    书上说一个位段必须存放在用一个存储单元中,不能跨两个单元,怎么理解啊,存储单元就是字节吗?那要是9位怎么办呢不跨都不行啊

    struct STU
    {
    unsigned char :2;
    unsigned int :9;
    }
    30  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-26 21:58:461楼 得分:0
    struct STU
    {
    unsigned char a :2;
    unsigned int b:3;
    unsigned int c:3;
    }

    好像可以用连续的9位来表示他们哦,不知道为什么。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • iu_81
    • 等级:
    发表于:2008-05-26 22:02:092楼 得分:0
    意思是说a占2位,b占3位,c占3位,总共占1byte
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-26 22:04:163楼 得分:0
    struct STU
    {
    unsigned int a :2;
    unsigned int b:3;
    unsigned int c:4;
    }

    楼上的,这9位是连续的吗,什么时候不是连续的呢,不用unsigned:2这样的空段哦
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • iu_81
    • 等级:
    发表于:2008-05-26 22:05:184楼 得分:0
    位段是以位为单位定义长度的结构体类型中的成员,位段的长度不能大于存储单元的长度,也不能定义位段数组。 
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • iu_81
    • 等级:
    发表于:2008-05-26 22:06:355楼 得分:0
    若某一个段要从另一个字开始存放,可以定义: 
    unsigned a:1; 
    unsigned b:2; 
    unsigned :0; 
    unsigned c:3; (另一单元) 
    使用长度为0的位段,作用就是使下一个位段从下一个存储单元开始存放。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-26 22:14:126楼 得分:0
    你说的我都知道,但是我还是有点迷惑

    若某一个段要从另一个字开始存放,可以定义: 
    unsigned a:1; 
    unsigned b:2; 
    unsigned :0; 
    unsigned c:3; (另一单元) 
    使用长度为0的位段,作用就是使下一个位段从下一个存储单元开始存放

    就拿你这个来说,有时候即使没有unsigned :0; 它也会重新起另一个单元,有时候又不会,还是存储单元是什么意思,在32计算机中是多大
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-26 22:18:527楼 得分:0
    一个字节
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • iu_81
    • 等级:
    发表于:2008-05-26 22:20:098楼 得分:0
    计算机以8位二进制作为一个存储单元。在32位系统中,一个整型的存储需要四个存储单元。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-26 22:27:419楼 得分:0
    呵呵,谢谢iu_81,这么说吧,
    struct STU
    {
    unsigned int a:2;
    unsigned int b:3;
    unsigned int c:4;


    你觉得是从第6位开始放还是在第9位开始存放
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved