【C++从0到1】36、C++中整数的书写

C++从0到1全系列教程

整数默认是十进制,一个表示十进制的数字不需要任何特殊的格式。

1、二进制

  • 二进制由 0 和 1 两个数字组成,书写时必须以0b或0B(不区分大小写)开头。

  • 以下是合法的二进制:

      int a = 0b101;      // 换算成十进制为 5
      int b = -0b110010;  // 换算成十进制为 -50
      int c = 0B100001;   // 换算成十进制为 33
    
  • 以下是非法的二进制:

    int m = 101010;  // 无前缀 0B,相当于十进制
    int n = 0B410;    // 4不是有效的二进制数字
    

注意:

  • C++标准并不支持上面的二进制写法,只是有些编译器自己进行了扩展,才支持二进制数字。换句话说,并不是所有的编译器都支持二进制数字,只有一部分编译器支持,并且跟编译器的版本有关系。

2、八进制

  • 八进制由 0~7 八个数字组成,书写时必须以0开头(注意是数字 0,不是字母 o)。

  • 以下是合法的八进制数:

      int a = 015;      // 换算成十进制为 13
      int b = -0101;    // 换算成十进制为 -65
      int c = 0177777;  // 换算成十进制为 65535
    
    
  • 以下是非法的八进制:

    int m = 256;  // 无前缀 0,相当于十进制
    int n = 03A2;  // A不是有效的八进制数字
    
    

3、十六进制

  • 十六进制由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,书写时必须以0x或0X(不区分大小写)开头。

  • 以下是合法的十六进制:

    int a = 0X2A;   // 换算成十进制为 42
    int b = -0XA0;  // 换算成十进制为 -160
    int c = 0xffff;   // 换算成十进制为 65535
    
    
  • 以下是非法的十六进制:

     int m = 5A;    // 没有前缀 0X,是一个无效数字
     int n = 0X3H;  // H不是有效的十六进制数字
    
    

4、需要注意的坑

  • 在C++中,不要在十进制数前面加0,会被编译器当成八进制。
  • 还有,不要随便删掉别人程序中整数前面的0,它不是多余的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值