二进制运算

二进制运算

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

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

首先:

正数的原码,反码,补码就是其本身。
负数的原码就是原码表示,反码就是除符号位以外取反,补码就是最低位+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,所以为正数。
posted @ 2021-10-13 00:07  tallgy  阅读(229)  评论(0编辑  收藏  举报