C語言中位運算的相關面試題

2022-09-18 01:48:45 字數 581 閱讀 2066

(企業面試題1.)輸入乙個位元組內的數(0-255)和移動位數.輸出移位結果(要求迴圈移位)(系統自帶的移位都是非迴圈的)

int number = 0,count = 0;//number

表輸入的數

,count

表示移位數

printf

("please enter two number:");

scanf("%d%d",&number,&count);

unsigned

char a = (char)number;

unsignedcharb = 0;

int x = a>(8-count);

b = x|y;

printf("%u",b);

(企業面試題2.)定義乙個巨集,來實現乙個整數奇偶比特位的交換,例如:6奇偶比特位交換後的結果是9,如何用巨集來實現

#define swatch(n) (n&0x55555555)<<1 |( n&0xaaaaaaaa)>>1

int num = 0;

do while (num<0);

printf("%d",swatch(num));

C語言面試題分類 位運算

1.不用臨時變數交換兩個整數。a a b b a b a a b 2.實現乙個函式,輸入乙個整數,輸出該數二進位制表示中1的個數。例如9的二進位制是1001,則輸出2。int check count fun int number return count int main 錯誤 如下 有符號數會造成...

C語言中的位運算子相關筆試題

由於位運算具有執行效率高且不容易受到資料位數長短的影響,具有較好的移植性,同時,由於位運算都可以直接翻譯為彙編 故 的執行效率往往也比較高,故在嵌入式領域具有廣泛的應用。一 一些面試題 例一 用乙個表示式,判斷乙個數x是否為2的n次方,不用迴圈語句。結果 x x 1 例二 取兩個變數中較大數,不適用...

位運算面試題總結

題目鏈結 題目描述 給出兩個32位的整數n和m,以及兩個二進位制位的位置i和j。寫乙個方法來使得n中的第i到j位等於m m會是n中從第i為開始到第j位的子串 樣例n 10000000000 2,m 10101 2,i 2,j 6 返回n 10001010100 2class solution els...