您现在的位置是:主页 > news > 网站开发流程任务/济南网络优化网站

网站开发流程任务/济南网络优化网站

admin2025/5/9 20:29:55news

简介网站开发流程任务,济南网络优化网站,网站如何改造wap,泰州网站建设服务好“有符号”右移操作符(>>):value >> num value指定移动的值 num指定移动的位数运算规则:按照操作符右侧指定的位数将操作符左边的操作数向右移动(采用符号扩展机制);符号扩展进行移位,即:若符号为正,…

网站开发流程任务,济南网络优化网站,网站如何改造wap,泰州网站建设服务好“有符号”右移操作符(>>):value >> num value指定移动的值 num指定移动的位数运算规则:按照操作符右侧指定的位数将操作符左边的操作数向右移动(采用符号扩展机制);符号扩展进行移位,即:若符号为正,…

“有符号”右移操作符(>>):

value >> num     value指定移动的值  num指定移动的位数

运算规则:

按照操作符右侧指定的位数将操作符左边的操作数向右移动(采用符号扩展机制);

符号扩展进行移位,即:若符号为正,则在高位插入0,若符号为负,则在高位插入1(符号位保持不变);

当左边的操作数为byte、short类型时,它们会被转换为int类型,其结果要是int类型。

数学意义:

右移一位相当于除以2,右移n位相当于除以2的n次方。

例:-101(int类型32位)

-101右移2位内存分析

源码        1000,0000        0000,0000        0000,0000        0110,0101        取反----->

反码        1111,1111        1111,1111        1111,1111        1001,1010        加1 ----->

补码        1111,1111        1111,1111        1111,1111        1001,1011        >>2----->

移位后补码        1111,1111        1111,1111        1111,1111        1110,0110        减1----->

反码        1111,1111        1111,1111        1111,1111        1110,0101        取反----->

源码        1000,0000        0000,0000        0000,0000        0001,1010        十进制为:-26

值得注意的是:无论正负偶数右移一位直接是整除结果,但对于正值奇数结果是除以2后向下取整后的结果。

对于负值奇数结果是除以2后向上取整结果。如下表:

正数                                        负数

偶数(60)        直接除以2(30)                      直接除以2(-30)

奇数(61)        除以2后向下取整(30)        除以2后向上取整(-31)

“无符号”右移操作符(>>>)

value >>> num     value指定移动的值  num指定移动的位数

运算规则:

按照操作符右侧指定的位数将操作符左边的操作数向右移动(0扩展机制);

移位过程中,无论数值是正数还是负数,都在最高位补0

只对32位和64位值有意义

在Thinking in java 中有这么一句话:

只有数值右端的低5位才有用,这样可以防止我们移位超过int型值所具有的位数。(因为2的5次方为32,而int类型只有32位)若对一个long类型的数值进行处理,最后得到的结果也是long类型,此时只会用到数值右端的低6位,以防止移位超过long型数值具有的位数

换言之,如果移动位数超过该类型的最大位数,那么编译器会对移动的位数取模。例如果对int类型移位33位,实际上只移动了33%32=1位。具体细节是(int a<

注意:移位运算符不存在“无符号”左移这一说。