欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

按位取反运算符,按位取反运算符怎么打

终极管理员 知识笔记 77阅读

取反的步骤应该是
一、先由一个数的原码推出它的补码原码与反码相互转化时符号位不用取反
二、对补码进行按位取反包括符号位也取反取反后的数就是新补码
三、这个新补码是计算机存储用的所以用这个新补码反推出原码才是我们能读懂的二进制数字。

------------------------------------------------------------

例如

~5  -6 的计算步骤

一、先由一个数的原码推出它的补码

5的原码 反码 补码0000...0101    正数的原反补码相同

二、对补码进行按位取反取反后的数就是新补码

取反操作1111...1010    按位取反的操作对象是补码且符号位也会取反取反后会变成新补码

三、补码是内存存储用的所以用这个新补码反推出其原码才是我们能读懂的二进制数字。

补码1111...1010

反码1111...1001

原码1000...0110      -----> -6

------------------------------------------------------------

再例如

~(-3)  2 的计算步骤

-3的原码1000...0011

-3的反码1111...1100    原码转化为反码时符号位不用取反

-3的补码1111...1101   内存中存的是补码

取反操作0000...0010    ------>    对3的补码取反得到新补码

由新补码的符号位可以看出该数字是个正数故其原反补码相同

所以新补码 反码 原码0000...0010      -----> 2

------------------------------------------------------------

快速求按位取反~

原数字(正数)加一后再加负号
~1 -2  
~2 -3
~3 -4
~6 -7
~9 -10

原数字(负数)加一后再加负号
~(-1) 0
~(-2) 1
~(-3) 2
~(-6) 5
~(-9) 8

标签:
声明:无特别说明,转载请标明本文来源!