二进制运算


二进制运算

今天笔试,遇到了二进制运算,因此做一点笔记

如果有不对的,欢迎指正,我会进行修改

首先:

正数的原码,反码,补码就是其本身。
负数的原码就是原码表示,反码就是除符号位以外取反,补码就是最低位+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