首页 > 编程语言 > 详细

一个比较有意思的C语言问题

时间:2016-01-25 16:49:05      阅读:138      评论:0      收藏:0      [点我收藏+]

先看代码吧,学习c语言结构体中看到的一个问题

#include<stdio.h>
int main(){
    struct{
        int a:2;
    }x;
    x.a=1;
    x.a=x.a+1;
    printf("%d\n",x.a);
    return 0;
}

输出结果是-2,一开始很意外,后来咨询了一下别人,发现结构体中int a:2;是表示a为2位有符号二进制数;

之后,x.a=1;x.a=x.a+1;这两句实现了二进制数相加,其实就是

  01

+01

——

 10

得出结果是10,10在有符号二进制数中表示成10进制数,其实是-2;而不是2.

技术分享
技术分享

一个比较有意思的C语言问题

原文:http://www.cnblogs.com/hongrunhui/p/5157529.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!