位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。
1.輸入乙個float型數,以十六進製制形式輸出其32位機器數。
#include
void main()
2.從鍵盤輸入乙個二進位製非負整數,螢幕上列印輸出對應的十進位制、八進位制和十六進製制數,要求輸出的十六進製制數中的英文本母為大寫字母。
#include
void main()
int convertbinarytodecimal(long long n)
return sum;
}3.定義函式void dectobin(int a, char b[33]); 函式功能是將整數a轉換為它對應的32位二進位制機器數,將32位二進位制機器數以字串形式存於字元陣列b(以'\0'字元結束)不允許使用%2運算,只能利用位運算子(如:移位運算,與運算等)實現程式功能。
#include
void main()
void dectobin(int a,char b[33])
} else//當a小於零時,先求其絕對值的機器數,再每位取反,再最後一位加1
b[0]+=1;//最後一位加1
i=0;
while(b[i]==2)//判斷是否需要進製 }
for(i=31;i>=0www.cppcns.com;i--)
print程式設計客棧f("%d",b[i]);//輸出
printf("\n");
}4.定義函式unsigned mod(unsigned a, unsigned b, unsigned c); 功能是計算並返回a*b%c的結果。要求考試a, b, c的範圍是大於0且小於 231,程式不能使用64位整型(如:long long型別或__int64)求解。
#include
void main()
unsigned mod(unsigned a, unsigned b, unsigned c)
; i=0;
while(b!=0)
unsigned result=a*bin[31];//初始化result的值
for(i=31;i>0;i--)
result=(result<<1)%c+a*bin[i-1];//迭代法求result的值
result=result%c;
return result;//返回result
}
C 位運算 示例
在c 中可以對整型運算物件按位進行邏輯運算。按位進行邏輯運算的意義是 依次取被運算物件的每個位,進行邏輯運算,每個位的邏輯運算結果是結果值的每個位。c 支援的位邏輯運算子如下表所示。運算符號 意義 運算物件型別 運算結果型別 物件數 例項 位邏輯非運算 整型,字元型 整型 1 a 位邏輯與運算 2 ...
C 位運算示例
在c 中可以對整型運算物件按位進行邏輯運算。按位進行邏輯運算的意義是 依次取被運算物件的每個位,進行邏輯運算,每個位的邏輯運算結果是結果值的每個位。c 支援的位邏輯運算子如表2.9所示。運算符號 意義 運算物件型別 運算結果型別 物件數 例項 位邏輯非運算 整型,字元型 整型 1 a 位邏輯與運算 ...
C語言 關於位運算子的簡單筆記
很多系統程式都要求再bit 位 一級進行運算或處理。位運算原本屬於組合語言的功能,c語言也提供了一些類似組合語言的功能。位運算,是以二進位制位單位進行運算的。例如 乙個char型資料佔據8個 二進位制 位,t.e.乙個byte 位元組 則 最右邊的二進位制位稱為第0位,最左邊的為最高位 即,符號位 ...