一、用 C 語言撰寫一個函式 void bit_pattern(unsigned num),它能將一個 32-bit 整數數值 0 與 1 的 bit pattern 列印出來。例如數值是 444 所列印出來的 bit pattern 應 該是 00000000 00000000 00000001 10111100?

詳解 (共 7 筆)

Y.H. Shawn 陳怡先
Y.H. Shawn 陳怡先
詳解 #2483229
2017/11/10
#include void bi...
(共 344 字,隱藏中)
前往觀看
Lin Jai Shing
Lin Jai Shing
詳解 #3576404
2019/09/11
void bit_pattern(uns...
(共 186 字,隱藏中)
前往觀看
每個結果都是確定的,是你在投生之前自己做出的選澤
每個結果都是確定的,是你在投生之前自己做出的選澤
詳解 #5331872
2022/02/07

5331872-6261f9a32fe86.jpg

梅川依芙
梅川依芙
詳解 #4848104
2021/06/29

樓上是用C++來寫,題目說要用C語言, 可以用C++來寫嗎?

Liao Ping Lun
Liao Ping Lun
詳解 #5587827
2022/08/13
提供其他程式語言的內建函式解法:Pyth...
(共 725 字,隱藏中)
前往觀看
Tony Chung
Tony Chung
詳解 #2891484
2018/07/03

void bit_pattern(unsigned num){ int a=0; int b=num/2; if(num%2==0) a=0; if(num%2==1) a=1; while(b!=1){ a=b%2+a; b=b/2; } a=b+a; }

hchungw
hchungw
詳解 #6051316
2024/03/22
#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。