#include <stdio.h>
void bit_pattern(unsigned num) {
for (int i = 31; i >= 0; i--) {
unsigned mask = 1 << i;
printf("%u", (num & mask) ? 1 : 0);
if (i % 8 == 0) {
printf(" "); // 每8位輸出一個空格,方便閱讀
}
}
printf("\n");
}
int main() {
unsigned num = 444;
bit_pattern(num);
return 0;
}
這個函數bit_pattern接受一個無符號整數作為參數,使用一個迴圈從第31位(最高位)到第0位(最低位)遍曆每一位。在每次迭代中,它使用一個掩碼mask來選定當前位(通過1 << i將1左移i位),然後使用按位與操作&來確定該位是否為1。如果當前位是1,則列印1;如果是0,則列印0。為了易於閱讀,每8位之後加一個空格。
當你運行這個程式並傳入444作為參數時,它會列印444的32位二進位表示,如題目所示:00000000 00000000 00000001 10111100。