欢迎关注本人公众号 java中逻辑右移">>>"算术右移">>"的区别? >>右移运算符,有符号。右边超出截掉,左边补上符号位 例子: 分析: 注: 以byte为例: 11111111 左边第一个1,表示负号位,十进制的值为-1 也就是说10000000~11111111都是负数,即-128~-1 而范围在00000000~01111111都是正数,即0~127 最小的负数为 1000 0000,为什么是这个呢,因为计算机中负数是补码表示,真实的值是将补码除了符号位其余的取反,再加1,所以 1000 0000 除了符号位取反得 1111 1111,再加1,得到 1 0000 0000,但是它的属性是负数,所以是-128。明显看到它已经是9位了,这也是要用补码的一个原因。 具体的查 原码 反码 补码 相关知识。
|
java中逻辑右移">>>"算术右移">>"的区别
最新推荐文章于 2024-06-25 11:04:04 发布