鱼C论坛

 找回密码
 立即注册
查看: 4358|回复: 15

[技术交流] 每日一题:day002

[复制链接]
发表于 2021-8-13 11:46:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 连帅帅 于 2021-8-13 11:47 编辑

题目:计算机中无符号右移和带符号右移的介绍,请看下面的代码,最后输出逇y是什么?
public static void main(String args[]) {
        int x, y;
        x = 5 >> 2;
        y = x >>> 2;
        System.out.println(y);
    }
解题思路:本体主要涉及到右移>>与无符号右移>>>的使用,另外对计算机正负数的原码,反码,补码要理解会用。
先来聊聊计算机的几个码:
机器数:带有0、1的二进制数,但0、1不参与进制转换,比如x=001,就是机器数,其真值为+1,再比如x=101,也机器数,其真值为-1;
真值:-1011.1101,原码:1111.1101
原码:8位二进制来说,因为第一个为正(0)负(1)号,所以,其取值范围为111111111~011111111即-127~127;符号位与数值位之间用英文逗号,隔开,小数点用英文句号.隔开;
反码:正数的反码为其本身,负数的反码符号位不变,数值位取反;
补码:正数的补码为其本身,负数的补码在其反码的基础上加1;
移码:补码的符号位取反,数值位不变;
再来聊聊什么是>>以及>>>:
>>:右移,将数计算出的补码右移相应的位数;比如:二进制补码:1001,右移两位为:0010;另外负数的右移高位是补1,正数是补0的;
>>>:无符号右移,和右移几乎一致,不一致的地方在于无符号右移正负数的高位都是补0;
题解:
5的二进制为:
原码:0000 0000 0000 0000 0000 0000 0000 0101
反码:0000 0000 0000 0000 0000 0000 0000 0101
补码:0000 0000 0000 0000 0000 0000 0000 0101
右移两位为:0000 0000 0000 0000 0000 0000 0001
转化为十进制数为:1*2^0值为1;
然后就是1  >>> 2
同样的,1的二进制为:
原码:0000 0000 0000 0000 0000 0000 0000 0001
反码:0000 0000 0000 0000 0000 0000 0000 0001
补码:0000 0000 0000 0000 0000 0000 0000 0001
右移两位:0000 0000 0000 0000 0000 0000 0000 0000
转化为十进制数为:0

注意:如果计算出的补码右移结束后是1开头的(即为负数),则需要在取其反码,在取补码,然后转换为十进制数,如果是0开头的(即为正数),则不需要在取反码,然后去补码,直接即可转化为十进制。

今天讲的可能比较难以理解,有点像你刚学面向对象的时候,有点饶,大家仔细理解一下,其实道理很简单的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-13 12:03:25 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-13 13:56:16 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-13 14:03:46 | 显示全部楼层

回帖奖励 +1 鱼币

6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-13 14:31:24 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-14 11:32:53 | 显示全部楼层

回帖奖励 +1 鱼币

感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-14 12:03:50 | 显示全部楼层

回帖奖励 +1 鱼币

6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-14 14:55:23 | 显示全部楼层

回帖奖励 +1 鱼币

6666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-14 17:32:08 | 显示全部楼层

回帖奖励 +1 鱼币

棒棒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-15 09:04:31 | 显示全部楼层

回帖奖励 +1 鱼币

学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-15 12:00:43 | 显示全部楼层
来辣
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-15 12:43:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-15 14:57:10 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-15 15:43:40 | 显示全部楼层

回帖奖励 +1 鱼币

学到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-16 09:50:13 | 显示全部楼层
学到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-18 10:02:26 | 显示全部楼层
哇哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 00:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表