在 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 語言中,二進制數、八進制數和十六進制數都可以使用,但需要注意使用正確的前綴和語法,并且需要根據需要選擇正確的位操作和運算符來操作數據。