(1)&(與)–有0則0;無0則1;
(2)|(或)–有1則1,無1則0;
(3)^(亦或)–相同為0,不同為1;
(4)>>右移(最右邊的位被拋棄)
正數,最左邊添0;00001010>>3=00000001
負數,最左邊添1;10001010>>3=11110001
(5)《左移(最左邊的位被拋棄)–最右邊統一添0;
(正數)00001010<<3=01010000
(負數)10001010<<3=01010000
2.求乙個 數二進位制中1的個數:
方法1:
//迴圈32次
#include
using
namespace
std;
int numberof1(int n)//有符號的n
flag=flag<<1;//左移一位
} return count;
}int main()
方法2:
//迴圈1的個數次
#include
using
namespace
std;
int nemberof1(int n)
return count;
}int main()
測試:
int main()
3.判斷乙個整數是不是2的整數次方
分析:乙個整數如果是2的正數次方,那麼這個正數的二進位制位中只有乙個1;
只需要一句語句就可以判斷:假設這個正數為n:只需判斷n&(n-1)是否為0;
#include
using
namespace
std;
bool fun(int n)
return
true;
}int main()
4.輸入兩個整數m和n,計算需要改變m二進位制中的多少位才能得到n;
如:10:1010;13:1101,則需要改變10的二進位制的後三位才能得到1101;
#include
using
namespace
std;
int changebit(int m,int n)
return count;
}int main()
求乙個數的二進位制數中1的個數
求乙個數的二進位制數種1的個數 author administrator public class countoneinbinarynum num 2 system.out.println count 解法2 將解法一的除法變為位移運算 public void z2 1 method2 int nu...
二進位制位運算中 1 的個數
題目描述 現在夯夯和朱朱餓了,他們想去吃點東西,他們發現店裡東西的 都是2的次方倍 20,21,22 現在夯夯和朱朱想把他們的的錢全都用掉。想知道他們最少能吃多少東西,最多能吃多少東西?輸入格式 多組樣例,每組樣例佔一行,每行乙個整數,代表他們擁有的總錢數。輸出格式 分別回答他們的問題,答案用空格隔...
二進位制 求乙個數的二進位制表示中1的個數
題目 求乙個正整數x中1的個數 思考 二進位制是乙個01串。統計該串中1的個數。方法1 將x按照樸素的方法轉化成二進位制串,如果x的某二進位制位上為1,則res 求得最後x中1的個數。int x while x return res res即是x的二進位制數中1的個數用這種方法求,時間複雜度為o n...