二進制運算


二進制運算

今天筆試,遇到了二進制運算,因此做一點筆記

如果有不對的,歡迎指正,我會進行修改

首先:

正數的原碼,反碼,補碼就是其本身。
負數的原碼就是原碼表示,反碼就是除符號位以外取反,補碼就是最低位+1
這里,符號位不參與轉換,但是在與運算時需要參與。
正數符號位 0
負數符號位 1

正數和正數的二進制運算。
就直接轉二進制的原碼就行

正數&正數
console.log(2 & 8);

// 0

2 -> 0000000010
8 -> 0000001000
	
直接與運算為 0

正數和負數的二進制進行運算
負數需要轉二進制進行運算

帶有負數
console.log(-2 & 3);
	
// 2

-2 -> 000000010 -> 1111111101 -> 111111110
 3 -> 000000011
	
111111110 -1 取反 -> 0000010 就是2
	
然后就是符號問題
正數為0,負數為1,然后 & 為0,所以為正數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM