• 网站地图|收藏本站|数学学习|学习方法|电脑学习|教学大全|生活常识|句子大全|管理资料下载|范文大全
  • C语言里的位域(一)

    时间:10-14 10:16:34来源:http://www.laixuea.com 电脑故障阅读:8288

    概要:printf("BitSeg2的字节数为: %d\n",sizeof(BitSeg2)); return 0; } 输出结果为: 第一次赋值后: a的值为:1 b的值为:2 第二次赋值后: a的值为:4 b的值为:-2 第二次赋值后: a的值为:0 b的值为:3 BitSeg1的字节数为: 4 BitSeg2的字节数为: 1 代码中的BigSeg1定义了两个int类型的字段,而且它们分别只占用4位和3位的空间。当BitSeg1中的a,b分别赋值为1和2时,输出的结果也如我们所料。当第二次赋值为100和30时,输出的结果却是4和-2,为什么呢? 1.赋值问题 出现上述问题,是由于赋值与位域效果共同形成的,a和b虽然都是int类型,但是在BigSeg1结构里,它们只有4位和3位为实际有效位。也就是BigSeg1中的前4位是a的,接着的3位是b的(这里没有字节的跨越问题)。执行ba1.a=100语句,其中100的二进制代码是:01100100,程序只把这100的二进制数的前面4位(已用红色字体

    C语言里的位域(一),标签:电脑故障大全,电脑故障分析,http://www.laixuea.com
    Tag:电脑故障电脑故障大全,电脑故障分析电脑学习 - 电脑故障
    分类导航
    最新更新
    推荐热门