移位运算(无符号移位运算,有符号移位运算)

移位运算(无符号移位运算,有符号移位运算)移位运算,所有移位以5和-5为例移位运算左移(<<)正数负数带符号右移(>>)(右移向前面补对应的符号位所对应的值(正数补0,负数补1))正数负数不带符号右移(>>>)(>>>为java独有语法)正数负数移位运算可以移位运算的类型有:iuint,int,lang等类型.我们本次使用int类型一个int类型占4个字节,共32位,带符号…

大家好,又见面了,我是你们的朋友全栈君。

移位运算

可以移位运算的类型有:iuint,int,lang等类型.我们本次使用int类型
一个int类型占4个字节,共32位,带符号位,所以最高位位符号位(使用0,1表示符号位)

我们首先需要了解正数和负数的二进制码分别如何表示(以5和-5为例)

正数:0000 0000 0000 0101
负数:1000 0000 0000 0101

移位操作在二进制中都是补码移位在转会为原码得到相应的值
正数的反码,补码与原码相同
负数的反码为除符号位全部取反
负数的补码为反码加1

所以 在对正数进行移位操作时就是对原码进行操作
负数是对补码操作,操作完成后再转换为原码得到对应的值
所以-5的补码为:1111 1111 1111 1011

左移(<<)

正数

 5左移三位:0000 0000 0010 1000 =40

负数

-5左移三位:补码:1111 1111 1101 0111
原码:1000 0000 0010 1000
得:-40

带符号右移(>>)(右移向前面补对应的符号位所对应的值(正数补0,负数补1))

正数

5右移三位:0000 0000 0000 0000 =0

负数

-5右移三位:补码:1111 1111 1111 1111
反码:1111 1111 1111 1110
原码:1000 0000 0000 0001
得:-1

不带符号右移(>>>)(>>>为java独有语法)

正数

5右移三位:0000 0000 0000 0000 =0

负数

-5右移三位:补码:0001 1111 1111 1111 1111 1111 1111 1111
反码:0001 f f f f f f 1110
得:536 870 911

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158530.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux open详解,Linux系统open函数详解[通俗易懂]

    linux open详解,Linux系统open函数详解[通俗易懂]Linux系统中open函数主要作用就是打开和创建文件,可以根据参数来定制我们需要的文件的属性和用户权限等各种参数,下面良许教程网为大家分享一下Linux系统open函数具体使用方法。一、open函数用来干什么open函数在Linux下一般用来打开或者创建一个文件,我们可以根据参数来定制我们需要的文件的属性和用户权限等各种参数。二、open函数的定义和参数我们首先来看下open函数在Linux下的…

    2022年5月26日
  • UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\U0001f914’ in posit[通俗易懂]

    UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\U0001f914’ in posit[通俗易懂]原码#保存爬取结果(微博评论)result.to_csv(‘egg_comment.csv’,encoding=’gbk’)报错UnicodeEncodeError:’gbk’codeccan’tencodecharacter’\U0001f914’inposit原因网上很多内容都是采用utf8编码的,gbk无法编码字符’\U0001f914’,所以’utf8’格式…

    2022年11月3日
  • android实现点餐功能「建议收藏」

    android实现点餐功能「建议收藏」近期项目中有点餐功能要求中午和晚上一起点餐,中午和晚上的餐品加载的都是一样的有炒菜和面点废话不多说直接上代码activity页面代码:publicclassAnimationActivityextendsBaseActivityimplementsView.OnClickListener{privateListViewrecyclerView;privateImag…

    2022年6月19日
  • NeoKylin(中标麒麟)6.5 更新yum源「建议收藏」

    NeoKylin(中标麒麟)6.5 更新yum源「建议收藏」1.进入/etc/yum.repo.d目录:cd/etc/yum.repo.d2.将原来源文件重命名,例如:mvns6-adv-x86_64.repons6-adv-x86_64.repo.bak3.使用vim新编辑文件mirrors.163.com.repo:vimmirrors.163.com.repo,内容如下:[mirrors.163.com]name=mi…

    2022年8月10日
  • SPSS 实现KMO和Bartlett的球形度检验[通俗易懂]

    SPSS 实现KMO和Bartlett的球形度检验[通俗易懂]第一步:选择“因子分析”导入数据后,按顺序选择就好:“分析”-“降维”-“因子”第二步:选择变量如果只有一个变量,选中之后,再点击一下中间向右边的那个箭头多个变量的话,比如,我这里选择x1-x8,就是选择x1变量后,按住shift键不放,再点击x8变量,就可以一下子选择8个变量。第三步:选择KMO和巴特利特球形度检验这里,先不要急着点“确定”,先选择“描述”,接着在“相关性矩阵”那里勾选“KMO和巴特利特球形度检验”输出结果KMO统计量值大于0.5,可以看出变量间的相关程度无太

    2022年6月15日
  • pet的结构单元_三层架构

    pet的结构单元_三层架构PetShop4架构设计分析(三) petshop4.0详解之三(PetShop数据访问层之消息处理)三、PetShop数据访问层之消息处理在进行系统设计时,除了对安全、事务等问题给与足够的重视外,性能也是一个不可避免的问题所在,尤其是一个B/S结构的软件系统,必须充分地考虑访问量、数据流量、服务器负荷的问题。解决性能的瓶颈,除了对硬件系统进行升级外,软件设计的合理性尤为重要。在前

    2022年10月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号