移位操作符 << >> >>>】的更多相关文章

Java 逻辑运算符.位运算符.移位操作符  总结     作者:王可利(Star·星星) 逻辑运算符,表格如下: 解析逻辑运算符表: 1.与 (&) 特点:两个都为真的时候,结果为真.两个为假的时候,结果为假.如果存在一个是假的,结果都为假的. 2.或(|) 特点:两个都为真的时候,结果为真.两个都为假的时候都是假的.如果存在一个是真的,结果都为真的. 3.异或(^) 特点:异,表示不一样的意思.所以两个判断都是一样的情况下,结果为假.两个判断结果都是不一样的情况下,结果为真的. 4.非(!)…
一.java按位运算符(操作符) 这段时间偶尔看一下源码,会发现有很多很基础的java知识在脑海中已经慢慢的淡成不常用记忆,于是打算捡起来一些. 按位运算符是来操作整数基本数据类型中的单个“比特”(bir),即二进制位,位运算符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果. 位运算符来源于C语言面向底层的操作,在这种操作中经常需要直接操作硬件,设置硬件寄存器内的二进制位.Java的设计初衷是为了嵌入电视机机顶盒,所以种面向底层的操作仍被保留了下来. 1.“与”.“位与”(&) 按位…
C语言的移位操作符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算.位移位运算符分为左移和右移两种,均为双目运算符.第一运算对象是移位对象,第二个运算对象是所移的二进制位数. 位移位运算符的运算对象.运算规则与结果.结合性如表2-16所示. 移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关.如果是左移,则规定补入的数全部是0:如果是右移,还与被移位的数据是否带符号有关.若是不带符号数,则补入的数全部为0:若是带符号数,则补入的数全部等于原数的最左端位上…
6.5.7 按位移位操作符 语法 1.shift-expression: additive-expression shift-expression    <<    additive-expression shift-expression    >>    additive-expression 约束 2.每个操作数应该具有整数类型 语义 3.在每个操作数上执行整数晋升.结果类型是左操作数晋升后的类型.如果右操作数的值是负数或者大于等于晋升后的左操作数的宽度,那么行为是未定义的.…
java二进制表示形式 java中数字的二进制表示形式称为"有符号的二进制补码",下面先介绍原码,反码,补码. 编码 计算方法 原码 用最高位表示符号位,'1'表示负号,'0'表示正号.其他位存放该数的二进制的绝对值. 反码 正数的反码还是等于原码,负数的反码就是他的原码除符号位外,按位取反. 补码 正数的补码等于他的原码,负数的补码等于反码+1 例如,对于4位二进制来说 十进制 原码 反码 补码 4 0100 0100 0100 -4 1100 1011 1100 移位操作符 左操作…
记住所有的移动位数,针对的都是补码来讲的,所以要先将十进制整数转换成补码后,然后再来进行移位操作 移位操作 还要注意类型的约束条件,例如int,移动范围是0-31位,所以看补码只能看最后五位,这才是有效数字:long移动范围是0-63,所以补码只能看最后六位. 右移操作符. 左位移操作符(<<):无论是有符号数还是无符号数,都低位补0. 有符号右移位操作符(>>):用符号扩展,为正高位补0,为负高位补1. 无符号小技巧:移位赋值   i >>= 10;   将i右移10…
<<:左移操作符,右边补0,相当于乘二乘二... >>:右移操作符,左边补符号位(正数补0,负数补1),相当于除二除二... >>>:无符号右移,左边补0,相当于除二除二...…
按位操作符只可用于int类型,其它类型都会转化位int类型在操作,并且只有数值右端的低5位才右用(因为2^5=32) <<  左移位操作符,低位补零 >>  右移位操作符,有符号数高位补1,无符号数高位补0 >>  java专用右移位操作符;无任正负,都在高位插入0(linux 下负数用>>>在高位补1) //: object/Shifting.java package object; import java.util.*; import static…
如果对char,byte或者short类型的数值进行移位处理,那么在移位进行之前,他们会被转为int类型, 并且所得到的结果也是一个int型. 若对long类型的数值进行处理所得到的结果也是long. 如果对byte或者short值进行这样的右移(>>>=)运算,得到的可能是不正确的结果,他们会被转成int类型, 然后被截断,赋值给原来的类型. public class Test { /** * @param args */ public static void main(String[…
<< <<: 左移运算,左移几位就补几个0 >> >>: 右移运算,为算术右移 如果数字为正数时,移位后在前面补0 如果数字为负数时,移位后在前面补1 >>> >>>: 无符号右移,为逻辑右移.忽略符号,空位补0 无符号右移规则: 忽略了符号位扩展,0补最高位,无符号右移运算符 >>> 只对32位和64位值有意义 如果要移位的数是正数时: 右移和无符号右移的值是一样的 如果要移位的数是负数时: 右移后的值…