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

先看代码吧,学习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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT笔记

聊聊JAVA中 String类为什么不可变

前言 "我的风格比较偏传统和经典" 小明说,"我们在打扮自己的问题上还是蛮冒险的...我觉得当你是只狗的时候,穿什么都hold的住!" ? 哈哈哈,脱离单身狗快...

425190
来自专栏wym

HDU 1166 敌兵布阵

http://acm.hdu.edu.cn/showproblem.php?pid=1166

10620
来自专栏好好学java的技术栈

小海聊数据结构系列之早操排队图解冒泡排序

一直想写一些简单易懂的文章,因为平时看的很多的书籍或者文章都是看着很难受的感觉,当然,这并不是说书籍写的不好,只是说对于一些没有太多基础或者基础不是很好的来说,...

12230
来自专栏平凡文摘

国外大神总结的 10 个 Java 编程技巧!

13520
来自专栏java一日一条

由字符串反转(使用递归)引申出来一道Java面试题

在Java中,最好的实现就是用JDK中StringBuffer的反转方法,它不仅速度快,效率高,而且还知道如何处理unicode代理对(surrogate p...

10110
来自专栏诸葛青云的专栏

C语言最难啃的三块硬骨头

指针之所以难理解,因为指针本身就是一个变量,是一个非常特殊的变量,专门存放地址的变量,这个地址需要给申请空间才能装东西,而且因为是个变量可以中间赋值,这么一倒腾...

18820
来自专栏数说工作室

3. call PRXSUBSTR () | 庖丁解牛切割数据!

【SAS Says·扩展篇】庖丁解牛割数据! | 3. call PRXSUBSTR () 0. 前集回顾 1. 新的问题 2. 初识 PRXSUBSTR() ...

36250
来自专栏行者常至

golang string、int、int64 float 互相转换

18930
来自专栏同步博客

工厂模式

  定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。

12620
来自专栏CodeSheep的技术分享

函数式编程思维在三行代码情书中的应用

24950

扫码关注云+社区

领取腾讯云代金券