zoukankan      html  css  js  c++  java
  • ~(取反操作符)的探索

    一、定义

    取反操作符是位运算符的中一个,作用是按位补运算符翻转操作数的每一位。

    二、举例说明

    正数:~(6) 6的二进制表示 0000 0110

                                              按位取反  1111 1001    说明:在计算机中,正数用原码表示,负数使用补码存储,

                                                                                            首先看最高位,最高位1表示负数,0表示正数。

                                                                                             此计算机二进制码为负数,最高位为符号位。

                 根据补码得到原码,补码-1:1111 1000

          除最高位符号位外,其余位取反:1000 0111=-7

    所以结果是~6=-7

    负数:~(-6) -6的二进制表示  1000 0110              说明:在计算机中,负数使用二进制补码存储。

                                       反码  1111 1001 

    计算机中存储的二进制补码 1111 1010

                                     ~取反  0000 0101 

    所以结果是~(-6)=5

    三、总结

                在计算机中负数是按照二进制的补码存储的,所以当最高位为1的时候,其实这是负数的补码,这一点很重要。          

  • 相关阅读:
    Java-使用IO流对大文件进行分割和分割后的合并
    Java-单向链表算法
    Java-二分查找算法
    Java-二叉树算法
    Java-对象比较器
    Android中Activity的四种开发模式
    Struts2工作原理
    C++实现单例模式
    数组中有一个数字出现的次数超过数组的一半,请找出这个数字
    c++ enum用法【转】
  • 原文地址:https://www.cnblogs.com/cherish836138981/p/10874655.html
Copyright © 2011-2022 走看看