运算符“>>” 运算符“>>”执行算术右移,它使用最高位 填充移位后左侧的空位。右移的结果为: 每移一位,第一个操作数被2除一次,移动 的次数由第二个操作数确定 128>>1得到64 256>4得到16 256>4得到-16
运算符“>>” ▪ 运算符“>>”执行算术右移,它使用最高位 填充移位后左侧的空位。右移的结果为: 每移一位,第一个操作数被2除一次,移动 的次数由第二个操作数确定。 128 >> 1 得到 64 256 >> 4 得到 16 -256 >> 4 得到 -16
逻辑右移运算符 逻辑右移或叫无符号右移运算符>>只对位 进行操作,而没有算术含义,它用0填充左 侧的空位 算术右移不改变原数的符号,而逻辑右移 不能保证这一点 (byte)0x80>>2得到-32 0xa2>>>2 得到40 (byte)0xa2>2得到-24 (byte)0xa2>>2得到1073741800
逻辑右移运算符 ▪ 逻辑右移或叫无符号右移运算符>>>只对位 进行操作,而没有算术含义,它用0填充左 侧的空位 ▪ 算术右移不改变原数的符号,而逻辑右移 不能保证这一点 (byte)0x80 >> 2 得到 –32 0xa2 >>> 2 得到 40 (byte) 0xa2 >> 2 得到 -24 (byte) 0xa2>>>2 得到 1073741800
移位运算符 移位运算符约简其右侧的操作数,当左侧操作数 是int类型时,右侧以32取模;当左侧是long类型 时,右侧以64取模 Int x; X=x>>>32 x的结果不改变,而不是通常期望的0。 这样可以保证不会将左侧操作数完全移走。 “>>”运算符只用于整型,它只对int或long值起 作用。如果用于 short或byte值,则在进行“>>〉 操作之前,使用符号扩展将其提升为int型,然后 再移位
移位运算符 ▪ 移位运算符约简其右侧的操作数,当左侧操作数 是int类型时,右侧以32取模;当左侧是long类型 时,右侧以64取模 ▪ “>>>”运算符只用于整型,它只对int或long值起 作用。如果用于short或byte值,则在进行“>>>” 操作之前,使用符号扩展将其提升为int型,然后 再移位 int x; x = x >>> 32; x的结果不改变,而不是通常期望的0。 这样可以保证不会将左侧操作数完全移走
其他运算符 Java中的运算符还包括扩展赋值运算符( 、/=、%、&=、‖ >> <<=)及(>>=),条件运算符(?:),点 运算符(.),实例运算符( instanceof), (new)运算符,数组下标运算符([]) 等
其他运算符 ▪ Java中的运算符还包括扩展赋值运算符(=、 +=、-=、*=、/=、%=、&=、|=、^=、>>=、 <<=)及(>>>=),条件运算符(?:),点 运算符(.),实例运算符(instanceof), (new)运算符,数组下标运算符([ ]) 等
扩展赋值运算符 ■扩展赋值运算符是在赋值号(=)前再加上其他 运算符,是对表达式的一种简写形式。如果有赋 值语句 var= var op expression, 其中,var是变量,op是算术运算符或位运算符, expression为表达式。使用扩展赋值运算符可表 示为: var op- expression, 例3-6
扩展赋值运算符 ▪ 扩展赋值运算符是在赋值号(=)前再加上其他 运算符,是对表达式的一种简写形式。如果有赋 值语句: var = var op expression; 其中,var是变量,op是算术运算符或位运算符, expression为表达式。使用扩展赋值运算符可表 示为: var op= expression; 例3-6