在 C 語(yǔ)言中,二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)都是整數(shù)類型的值,它們都可以用于存儲(chǔ)和操作數(shù)據(jù)。下面是它們的使用方法:
二進(jìn)制數(shù)
表示二進(jìn)制數(shù)值時(shí),需要在數(shù)值前面加上 0b 或 0B 的前綴,例如:
int num = 0b1010; // 表示十進(jìn)制的 10
C 語(yǔ)言也可以使用位運(yùn)算符、位操作和位掩碼等來(lái)操作二進(jìn)制數(shù),例如:
int a = 0b1010;
int b = 0b1100;
int c = a & b; // 二進(jìn)制與運(yùn)算,結(jié)果為 0b1000
int d = a | b; // 二進(jìn)制或運(yùn)算,結(jié)果為 0b1110
int e = a ^ b; // 二進(jìn)制異或運(yùn)算,結(jié)果為 0b0110
int f = ~a; // 二進(jìn)制取反,結(jié)果為 0b0101
int g = a << 1; // 二進(jìn)制左移一位,結(jié)果為 0b10100
int h = a >> 1; // 二進(jìn)制右移一位,結(jié)果為 0b0101
八進(jìn)制數(shù)
表示八進(jìn)制數(shù)值時(shí),需要在數(shù)值前面加上 0 的前綴,例如:
int num = 012; // 表示十進(jìn)制的 10
C 語(yǔ)言也可以將八進(jìn)制數(shù)值轉(zhuǎn)換為十進(jìn)制數(shù)值或其他進(jìn)制數(shù)值,例如:
int num = 012; // 表示十進(jìn)制的 10
int num2 = 0o12; // 表示十進(jìn)制的 10
int num3 = 0x8; // 表示十進(jìn)制的 8
int num4 = strtol("12", NULL, 8); // 將 "12" 轉(zhuǎn)換為八進(jìn)制數(shù),結(jié)果為十進(jìn)制的 10
十六進(jìn)制數(shù)
表示十六進(jìn)制數(shù)值時(shí),需要在數(shù)值前面加上 0x 或 0X 的前綴,例如:
int num = 0x0A; // 表示十進(jìn)制的 10
C 語(yǔ)言也可以使用位運(yùn)算符、位操作和位掩碼等來(lái)操作十六進(jìn)制數(shù),例如:
int a = 0x0A;
int b = 0x0C;
int c = a & b; // 十六進(jìn)制與運(yùn)算,結(jié)果為 0x08
int d = a | b; // 十六進(jìn)制或運(yùn)算,結(jié)果為 0x0E
int e = a ^ b; // 十六進(jìn)制異或運(yùn)算,結(jié)果為 0x06
int f = ~a; // 十六進(jìn)制取反,結(jié)果為 0xFFF5
int g = a << 1; // 十六進(jìn)制左移一位,結(jié)果為 0x14
int h = a >> 1; // 十六進(jìn)制右移一位,結(jié)果為 0x05
總之,在 C 語(yǔ)言中,二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)都可以使用,但需要注意使用正確的前綴和語(yǔ)法,并且需要根據(jù)需要選擇正確的位操作和運(yùn)算符來(lái)操作數(shù)據(jù)。