前言
今天想加一个QQ群,进群需要回答问题,刚看到这个问题一脸懵逼,群主有点东西哦?想了几秒钟只能确定这是个运算符,.但是把 |和||搞混了,不知道怎么下手。如果这个做不对,我计算机专业的老脸实在没处安放.....最后猜应该是位运算里面的或运算,填了15通过申请啦~所以把位运算相关的知识点梳理一下。
正文
位运算不管是什么语言,都是经常会用到的,所以就不固定以某种语言来举例子了。位运算主要包括与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)这几种,其中除了取反(~)以外,其他的都是二目运算符,即要求运算符左右两侧均有一个运算量。
1、补码
在总结按位运算前,有必要先介绍下补码的知识,我们知道当将一个十进制正整数转换为二进制数的时候,只需要通过除2取余的方法即可,但是怎么将一个十进制的负整数转换为二进制数呢?其实,负数是以补码的形式表示,其转换方式,简单的一句话就是:先按正数转换,然后取反加1。
要将十进制的-10用二进制表示,先将10用二进制表示:
0000 0000 0000 1010
取反:
1111 1111 1111 0101
加1:
1111 1111 1111 0110
所以,-10的二进制表示就是:1111 1111 1111 0110