码迷,mamicode.com
首页 > 编程语言 > 详细

Java按位运算符之按位取反

时间:2020-02-27 23:29:37      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:tps   logs   html   原码   border   https   参考   二进制   转换   

一 数据储存形式
二进制在内存中以补码的形式存在。
补码首位是符号位,0表示该数是正数,1表示该数是负数。
 
例如:
 
数值
带符号的二进制原码
(首位表示符号位)
补码
内存中的形式
(*表示无效位,其数量取决于分配的内存空间)
9 01001 01001 0***1001
-1 11 11 1***1 
 
 
二 补码是什么
正数: 补码 = 反码 = 原码
负数: 原码取反 = 反码,反码+1 = 补码
 
??运算时: 符号位不变,有效位进行运算!带*号的为无效位。
 
例如:
  原码 反码 补码
9 01001 01001 01001
-5 1***101 1***010 1***011
原码中: 9的有效位为1001,5的有效位为101。  
 
三 计算机输出数据的方式
 
                转换   
内存中补码 ———————> 原码 (显示)
 
 
四 按位取反运算符"~"的原理
按位取反: 将内存中的补码按位取反,包括符号位!!
 
例如:
                                   按位取反~                           原码显示
9  ---->    补码 0***1001 ------------>   补码 1***0110   ------------>  1***1010  (-10)     
 
                               按位取反~                            原码显示
-1 ---->     补码 1***1    ------------->   补码 0***0      ----------->  0  (补码是正数,所以原码也为0) 
 
 

Java按位运算符之按位取反

标签:tps   logs   html   原码   border   https   参考   二进制   转换   

原文地址:https://www.cnblogs.com/CTW42/p/12375142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!