C语言基础——进制转换

程序中进制的表示

二进制

二进制由 0 和 1 两个数字组成,使用时必须以0b或0B(不区分大小写)开头,例如:

//合法二进制

int a = 0b101; //换算成十进制5

int b = -0b110010; //换算成十进制-50

int c = 0B100001; //换算成十进制33

//不合法的二进制

int m = 101001; //无前缀0b或0B,相当于十进制

int n = 0B401; //4不是有效的二进制数字

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

下面是实际测试的结果:

  • Visual C++ 6.0 不支持。
  • Visual Studio 2015 支持,但是 Visual Studio 2010 不支持;可以认为,高版本的 Visual Studio 支持二进制数字,低版本的 Visual Studio 不支持。
  • GCC 4.8.2 支持,但是 GCC 3.4.5 不支持;可以认为,高版本的 GCC 支持二进制数字,低版本的 GCC 不支持。
  • LLVM/Clang 支持(内嵌于 Mac OS 下的 Xcode 中)。
  • window VScode支持

运算法则:逢二进一,借一当二

0B1101 - 0B0011 = 0B1010

0B1101 + 0B0011 = 0B10000

八进制

八进制由 0~7 八个数字组成,使用时必须以0开头(注意是数字 0,不是字母 o),例如:

//合法八进制 int a = 0105;

//换算成十进制69 0105 105

int b = -0101; //换算成十进制-65

int c = 017777; //换算成十进制8191

//不合法的八进制

int m = 256; //无前缀0,相当于十进制<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值