在 C 语言中,二进制数、八进制数和十六进制数都是整数类型的值,它们都可以用于存储和操作数据。下面是它们的使用方法:
二进制数
表示二进制数值时,需要在数值前面加上 0b 或 0B 的前缀,例如:
int num = 0b1010; // 表示十进制的 10
C 语言也可以使用位运算符、位操作和位掩码等来操作二进制数,例如:
int a = 0b1010;
int b = 0b1100;
int c = a & b; // 二进制与运算,结果为 0b1000
int d = a | b; // 二进制或运算,结果为 0b1110
int e = a ^ b; // 二进制异或运算,结果为 0b0110
int f = ~a; // 二进制取反,结果为 0b0101
int g = a << 1; // 二进制左移一位,结果为 0b10100
int h = a >> 1; // 二进制右移一位,结果为 0b0101
八进制数
表示八进制数值时,需要在数值前面加上 0 的前缀,例如:
int num = 012; // 表示十进制的 10
C 语言也可以将八进制数值转换为十进制数值或其他进制数值,例如:
int num = 012; // 表示十进制的 10
int num2 = 0o12; // 表示十进制的 10
int num3 = 0x8; // 表示十进制的 8
int num4 = strtol("12", NULL, 8); // 将 "12" 转换为八进制数,结果为十进制的 10
十六进制数
表示十六进制数值时,需要在数值前面加上 0x 或 0X 的前缀,例如:
int num = 0x0A; // 表示十进制的 10
C 语言也可以使用位运算符、位操作和位掩码等来操作十六进制数,例如:
int a = 0x0A;
int b = 0x0C;
int c = a & b; // 十六进制与运算,结果为 0x08
int d = a | b; // 十六进制或运算,结果为 0x0E
int e = a ^ b; // 十六进制异或运算,结果为 0x06
int f = ~a; // 十六进制取反,结果为 0xFFF5
int g = a << 1; // 十六进制左移一位,结果为 0x14
int h = a >> 1; // 十六进制右移一位,结果为 0x05
总之,在 C 语言中,二进制数、八进制数和十六进制数都可以使用,但需要注意使用正确的前缀和语法,并且需要根据需要选择正确的位操作和运算符来操作数据。