package com.eclipse.test;
public class TestTwo {
public static void main(String[] arg) {
int i=4; i<<=10;
pr(i); i>>=11;
pr(i);
}
public static void pr(Object str)
{System.out.println(str);
}
}
//4的二进制 29个0+100 向左移10位数(低位补0) 后的 二进制为 16个0+1000000000000 转换为十进制 第一个结果为 4096// 将4096的32位数向右移动11位 30个0+1//0 结果为2 第一个结果 4乘以2的10幂 第二个结果就是第一个结果除以2的11次幂
正数的补码等于源码 负数的补码等于反码加1 正数的左移低位补0 右移高位补 注意的一点是 在计算机中负数是已补码存在 所在计算 左移还是右移的时候一定要 把 计算的负数值先转换成补码 然后移动 移完之后在转换成 源码
java随机--移位运算
最新推荐文章于 2022-04-25 14:25:44 发布