java 位移运算,先出【运算结果】,不懂的可以运行程序:
6的二进制是: 110
6进行左移两位运算后结果是:11000,也就是24,可以看出来,正数的左移N位就是在右边末尾加N个0
-33的二进制是: 11111111111111111111111111011111
-33进行左移两位运算后结果是:11111111111111111111111101111100,也就是-132,可以看出来,负数的左移N位就是在右边末尾加N个0,为了保持位数不变,高位直接舍去
124的二进制是: 1111100
124进行右移两位位位运算后结果是:11111,也就是31可以看出正数右移就是在高位补0,然后为保持位数不变,低位舍去对应位数
-124的二进制是: 11111111111111111111111110000100
-124进行右移两位位位运算后结果是:11111111111111111111111111100001,也就是-31
124的二进制是: 1111100
124进行右移三位位移运算后结果是:1111,也就是15可以看出如果移位的位数过多会直接舍去最低位
-45的二进制是: 11111111111111111111111111010011
-45进行右移19位有符号位移运算后结果是:11111111111111111111111111111111,也就是-1,可以看出来,无符号负数位移是高位补1
-45进行右移19位 无符号 位移运算后结果是:1111111111111,也就是8191,可以看出来,无符号位移是即使是负数高位也是补0
代码如下:
package com.hxw.T2; public class ShiftOperate { /** * @param args */ public static void main(String[] args) { // 每个int整数是32位我们二进制用0000 0000 0000 0000 0000 0000 0000 0000 来表示0 //0000 0000 0000 0000 0000 0000 0000 0110 表示6 System.out.println("6的二进制是: "+Integer.toBinaryString(6)); System.out.println("6进行左移两位运算后结果是:"+(Integer.toBinaryString(6<<2))+",也就是"+(6<<2)+",可以" + "看出来,正数的左移N位就是在右边末尾加N个0"); System.out.println(); System.out.println("-33的二进制是: "+Integer.toBinaryString(-33)); System.out.println("-33进行左移两位运算后结果是:"+(Integer.toBinaryString(-33<<2))+",也就是"+(-33<<2)+",可以" + "看出来,负数的左移N位就是在右边末尾加N个0,为了保持位数不变,高位直接舍去"); System.out.println(); System.out.println("124的二进制是: "+Integer.toBinaryString(124)); System.out.println("124进行右移两位位位运算后结果是:"+(Integer.toBinaryString(124>>2))+",也就是"+(124>>2)+"可以" + "看出正数右移就是在高位补0,然后为保持位数不变,低位舍去对应位数"); System.out.println(); System.out.println("-124的二进制是: "+Integer.toBinaryString(-124)); System.out.println("-124进行右移两位位位运算后结果是:"+(Integer.toBinaryString(-124>>2))+",也就是"+(-124>>2)); System.out.println(); System.out.println("124的二进制是: "+Integer.toBinaryString(124)); System.out.println("124进行右移三位位移运算后结果是:"+(Integer.toBinaryString(124>>3))+",也就是"+(124>>3)+"可以看出如果移位的位数过多会直接舍去最低位"); System.out.println(); System.out.println("-45的二进制是: "+Integer.toBinaryString(-45)); System.out.println("-45进行右移19位有符号位移运算后结果是:"+(Integer.toBinaryString(-45>>19))+",也就是"+(-45>>19)+",可以看出来,无符号负数位移是高位补1"); System.out.println("-45进行右移19位 无符号 位移运算后结果是:"+(Integer.toBinaryString(-45>>>19))+",也就是"+(-45>>>19)+",可以看出来,无符号位移是即使是负数高位也是补0"); System.out.println(); } }
相关推荐
java位运算例子,一看就懂,包含符号介绍,每个符号都有相应的例子。
尽管我们在这个例子使用了byte 类型的值,但同样的基本的原则也适用于所有Java 的整数类型。 因为Java 使用2的补码来存储负数,并且因为Java 中的所有整数都是有符号的,这样应用位运算符可以容易地达到意想不到的...
解析expression四则运算表达式 如:(1+2*3.5*(2+3)-10+18*20)
很好的程序,供大家参考。大家多提意见哈。我们共同学习
java二进制运算器(加、见、乘、除)**********
java.四则运算器
简单小工具,输入十进制数值计算结果,C# WINFORM版,非源码
java运算java运算
一个java类,该类可以进行加、减、乘、除四则运算,并且可以输出运算结果。此外,对于除法,如果被除数为0,该类可以报错。对于加、减、乘、除之外的运算符,该类应该告知无法处理。 编写一个包含主方法main的公共类...
Java的位运算
BeanShell java 表达式运算框架,及其方便快捷(附jar包,工具类,测试类)
Java位运算操作 左位移 右位移 与或非的操作
加法运算计算器java版加法运算计算器java版加法运算计算器java版加法运算计算器java版加法运算计算器java版
例: Expression e = new [removed]"1+2*((3+5)/10*5*4 +(1-2)/4)"); System.out.println(e.eval());//32.5 要求jdk1.6
JAVA位运算.pdf ,深入了解java位运算
四则运算例子四则运算例子四则运算例子四则运算例子四则运算例子
使用Java和栈知识编写类似于四则运算的SQL语句的优先级查询
简单的JAVA四则运算,输入要计算的字符串(+、-、*、/、括号),得到计算结果
该程序是基于GUI设计的一款小型四则运算器,java爱好者参考参考!!