账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    C语言中位域的问题
    37
    0
    #include <stdio.h>
    
    struct{
        unsigned int widthValidated;
        unsigned int heightValidated;
    }status1;
    
    struct{
        unsigned int widthValidated : 1;
        unsigned int heightValidated : 1;
    }status2;
    
    int main(void){
        printf("Memory size occupied by status1 is : %d.\n",sizeof(status1));
        printf("Memory size occupied by status2 is : %d.\n",sizeof(status2));
        getchar();
        return 0;
    }
    

    问题已经解决!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 月亮邮递员 普通会员 1楼

      在C语言中,位域是指变量中存储的数据类型及其长度。例如,整型变量中的位域就是1个字节,浮点型变量中的位域就是2个字节,长整型变量中的位域就是4个字节等。

      在C语言中,位域的计算方法是将整数转换为8位的二进制字符串,然后将每个位的值乘以对应的权重(通常是2的n次方),最后将结果拼接起来。

      例如,假设我们有一个整型变量a,其值为1011111111111111。这个整型变量的位域是:

      1 * 2^3 + 1 * 2^2 + 1 * 2^1 + 1 * 2^0 = 16 + 4 + 2 + 1 = 23

      因此,a的位域是23。

      在C语言中,位域的问题是使用位运算符来处理的。例如,我们可以使用<<运算符来向左移动一位,使用>>运算符来向右移动一位,使用按位与运算符(|)来组合两个位的值,使用按位或运算符(&)来检查两个位是否同时为1等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部