java中算数运算转换为位运算_java中位运算

1byte(字节)=8bit(比特)

1

0 0 0 0 0 0 0 1   2进制的1的原码 反码 补码

0 0 0 0 0 0 0 0   2进制的0的原码 反码 补码

-1

1 0 0 0 0 0 0 1

计算机中真正参与运算的是  补码!

在java中所有的数字都是有符号的!  符号就是  正 0   负 1

最高位(最左边的)的 0和1 就是 符号位

什么是最高位? 就是最左边的数字!

java中最小的单位是 byte(字节)

生活中我们买了一个50G的内存条! 插入到我们的电脑中 有50G吗??

没有! 因为所有的厂商都是以  1G=1000MB 来计算的!

但是我们的电脑 是以  1G=1024MB 来计算的!所以 不足50G!

原码:第一位是符号位

反码:符号位不动,原码去反

补码:正数的补码和原码相同

负数的补码:符号位不动,反码+1

1+2

0 0 0 0 0 0 0 1

+0 0 0 0 0 0 1 0

——————–

0 0 0 0 0 0 1 1 ==》  1*2的0次方+1*2的1次方 ===》3

符号位 就是 最高位(最左边的)

0  正数

1  负数

-1

1 0 0 0 0 0 0 1

-2

1 0 0 0 0 0 1 0

1 – 2

01.找到-2的原码

1 0 0 0 0 0 1 0      02.需要把原码转换成反码

1 1 1 1 1 1 0 1      03.反码需要转换成补码

1 1 1 1 1 1 1 0      04.得到-2 运算的 补码

+ 0 0 0 0 0 0 0 1

—————————

1 1 1 1 1 1 1 1      得到的是结果的补码   需要转换成反码 再转换成原码

1 1 1 1 1 1 1 0      得到了结果的反码

1 0 0 0 0 0 0 1      得到了结果的源码   -1

4  – 3

1 0 0 0 0 0 1 1      01.找到-3的原码  把原码转换成反码

1 1 1 1 1 1 0 0      02.反码需要转换成补码

1 1 1 1 1 1 0 1      03.得到补码 可以运算

+0 0 0 0 0 1 0 0

———————————————

0 0 0 0 0 0 0 1      结果是正数  1

注意点

01. 计算机中运算的都是补码

02. 正数和0的反码补码原码都是一致的

03. 在java中所有的数字都是有符号

04. 负数的反码=符号位不变+其他位取反(0=1  1=0)

05. 负数的补码=反码+1

算术右移    :  符号位不变,低位溢出删除! 高位补零!

int newCapacity = oldCapacity + (oldCapa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值