c语言基础- -进制的表示
1.二进制
二进制数由0和1组成,以0b或0B开头
例如:
int a = 0b010110; //合法的二进制,以0b开头
int b = 0B110100; //合法的二进制,以0B开头
int c = 101010; //不合法的二进制,缺少前0b或0B
int d = 0b102021; //不合法的二进制,2不是二进制中有效的数字
运算法则:逢二进一,借一当二
例如:
0b11011 + 0b01010 = 0b100101
ob11011 - 0b01010 = 0b10001
2.八进制
八进制数由0,1,2,3,4,5,6,7组成,以0(数字零)开头
例如:
int a = 01234; //合法的八进制,以0开头
int b = 0534; //合法的八进制,以0开头
int c = 356; //不合法的八进制,缺少前缀0
int d = 0593; //不合法的八进制,9不是八进制中有效的数字
运算法则:逢八进一,借一当八
例如:
0365 + 0270 = 0365
0365 - 0270 = 075
3.十进制
十进制数由0,1,2,3,4,5,6,7,8,9组成
例如:
int a = 105; //合法的十进制
int b = 1A25; //不合法的十进制,A不是十进制中有效的数字
运算法则:逢十进一,借一当十
666 + 360 = 1026
666 - 360 = 306
4.十六进制
十六进制数由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(a,b,c,d,e,f)组成,以0x或0X开头
例如:
int a = 0x1A0B; //合法的十六进制,以0x开头
int a = 0XFA20; //合法的十六进制,以0X开头
int a = AB5D; //不合法的十六进制,缺少前缀0x或0X
int a = 0x44DH; //不合法的十六进制,H不是十六进制中有效的数字
运算法则:逢十六进一,借一当十六
例如:
0x3FA5 + 0x2DB6 = 0x6D5B
0x3FA5 - 0x2DB6 = 0x11EF