wordpress 微信登录插件下载失败,廊坊关键词seo排名方案,网站是如何建立的呢,百度极速版推广员怎么申请一、简单介绍原码反码补码 首先我们需要知道的是原码反码补码是一个人为的行为#xff0c;因为机器看的都是所谓的补码#xff0c;这个反码只是作为补码的到原码也就是人能看懂的跳板#xff0c;所以计算机无论是计算器里面的东西还是他底层运行的二进制代码都是补码#x…
一、简单介绍原码反码补码 首先我们需要知道的是原码反码补码是一个人为的行为因为机器看的都是所谓的补码这个反码只是作为补码的到原码也就是人能看懂的跳板所以计算机无论是计算器里面的东西还是他底层运行的二进制代码都是补码一定要记住只有原码是给人看的。 再次强调一遍只有原码是给人类看的计算机看的是补码而反码是跳板。
二、正数三码合一 首先我们来看正数的二进制原码我们就有8bit来看也就是一个字节在C语言里面那就是一个char在java里面那就是一个byte的大小当然我们算int也是可以扩充开来去看一样的而且要记住的一点我们这里是有正负数的也就是说char的上限就是从[-128,127]的这么一个范围然后int也就是[-2,147,483,648, 2,147,483,647]所以说我们的都是signed不是unsigned是有符号的整型。 然后我们根据我们的标题来看三码合一也就是三个码是一样的。 原码反码补码 我们看二进制的情况比如我们先给定一个数字为8那他的二进制我们用8位和32位都展示一下。 0000 1000 0000 0000 0000 0000 0000 0000 0000 1000 这下大家应该能知道为什么要选择8位了吧当然我们自然是可以作用在所有整型类型上的。
我们再来看一个比如说7。 0000 0111 然后根据我们正数的特性三码合一也就是这个是原码但是又是补码和反码。
我们也可以查看一下计算器里面的程序员选项。 三、负数三码不同
1.原码 既然正数是三码合一的那负数呢自然是不同的负数我们有个所谓的符号位在最左边可以标记出是否为负数也就是我们-7就是原码就是正常的7然后符号位是有一位的。 1000 0111 这个就是-7的原码但是大家不要急着用计算器去搞因为弄不出来的他给你显示的是补码。
2.反码 既然名字都叫反码所以我们的反码也是非常的简单的就是翻转我们所有的位数除了符号位也就是说-7的反码就是。 1111 1000 这个就是-7的反码除了符号位之外翻转我们细细看一下区别。 1000 0111 原码 1111 1000 反码 这个就是反码但是反码只是跳板最终我们要获取到补码才行。
3.补码 补码就是反码1补码反码1非常的简单如此操作。 1111 1000 反码 1111 1001 补码 所以这个1111 1001就是我们-7的补码也就是计算器里面显示的-7我们可以看一下。 相信大家现在已经会算负数了然后我们再来一个训练比如我们的1101 1101这个是补码我们要获得原码应该如何计算呢
是不是直接先-1变成反码然后再除了符号位翻转然后我们就可以读出这个是什么了。 1101 1101 补码 1101 1100 反码 1010 0011 原码 符号位变成负号-35。 大家如果想验证最后变出来的原码是否为正确除了直接算之外也可以使用计算器我们掐掉符号位再丢入计算器里面的位数即可获得正确答案。 然后我们就会算负数了这下我们就可以进行位运算了。
四、位运算
我们位运算顾名思义就是每个位进行运算。
1.与运算
与运算的口诀是全一出一有0出0可以简单理解为乘法符号是记住是而不是两个的短路与不是正常的与运算。 111 100 010 000 比如我们来个15 7那他的答案就是。 0000 1111 0000 0111 0000 0111 答案也就是7大家可以自己用编程语言测试一下。而且不要忘记了这里的运算的15和7已经变成了补码而且计算出来的结果也是补码。
我们再来一个-157。 1000 1111 -15原 1111 0000 -15反 1111 0001 -15补 0000 0111 7原7反7补 0000 0001 1补1反1原 所以答案就是1。
假如我们再来一个-15-8。 1000 1111 -15原 1111 0000 -15反 1111 0001 -15补 1000 1000 -8原 1111 0111 -8反 1111 1000 -8补 1111 0001 -15补 1111 0000 ?补 1110 1111 ?反 1001 0000 -16原 2.或运算
或运算的口诀就是有一出一没一出零符号是|两个是短路或。 1|11 1|01 0|11 0|00 会了与运算之后或运算也和明了了比如来个-15|7和6|3 1111 0001 -15补因为前面一直用的15相信大家也会算了所以这里直接用补码 0000 0111 | 7补7反7原 1111 0111 ?补 1111 0110 ?反 1000 1001 -9原 0000 0110 6补6反6原 0000 0011 | 3补3反3原 0000 0111 7补7反7原 3.异或运算
异或运算则是不同出1相同出0符号是^。 1^10 1^01 0^11 0^00 那我们就随便来一个继续-15 ^ 2。 1111 0001 -15补 0000 0010 ^ 2补2反2原 1111 0011 ?补 1111 0010 ?反 1000 1101 -13原 4.非运算取反
顾名思义就是取反操作符号是~这个是不需要多个进行运算的就是单纯的所有位数翻转我们继续以-15举例 1000 1111 -15原 1111 0000 -15反 1111 0001 -15补 取反之后 0000 1110 14补14反14原 所以答案就是14。
五、总结
不要忘记计算机所有的运算都是建立在补码的过程上的所以要进去运算的也是补码运算出来的也是补码计算器里面显示的也是补码你想要变成我们人类自己定义的原码那就得进行上述的转换。
如果对你有帮助的话不要忘记点赞收藏。