侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

java取反 -右移-左移-无符号右移的探讨

Java  /  管理员 发布于 5年前   379

取反:在二进制中第一位,1表示符数,0表示正数byte a = -1;原码:10000001反码:11111110补码:11111111      //异或: 00000000byte b = -2;原码:10000010反码:11111101补码:11111110      //异或: 00000001byte c = 3;         //    10000101System.out.println(~a);System.out.println(~b);System.out.println(~c);

 

运算结果:01-4

 

右移:正数右移.负数右移 ,无符号右移

右移的符号是:>>

无符号右移的符号的:>>>

在左右位移时应注意,位移是否超过了数据的长度,如果超过了就会进行取摸运算等:下面的代码中有测试到

 

 

//右移://右移一个正数,右移一个整数每次在左边补0 int a = 5;System.out.println(a>>1);     //原码;0000000101//右移一位: 0000000010System.out.println(a>>2);     //原码;0000000101//右移两位: 0000000001 System.out.println(a>>3);     //原码;0000000101//右移三位: 0000000000 System.out.println(a>>31);//原码;  0000000101//右移32位: 0000000000    System.out.println(a>>32);    //int 为32位,当位移等于32时,相当于没有移动,会进行取摸运算   System.out.println(a>>34);    //位移大于32时,进行取摸运算 34%32 = 2    //此时相当于位移两位         System.out.println(a>>>1);//无符号右移最高位补0    // 原码: 0000000101 //无符号右移 :     0000000010   2

 

运算结果:2100512

 

 

负数右移:

//右移一个负数,右移一个整数每次在左边补1//位移负数,应先将其装换成补码形式,再位移int a = -5;//原码:100000101//反码:111111010 反码是和原码的数相反  第一位相同(符号位)//补码:111111011 补码在反码后面加1System.out.println(a>>1);//补码:111111011 //补码右移一位: 111111101 -3System.out.println(a>>2);//补码:111111011 //补码右移两位: 111111110  -2System.out.println(a>>3);//补码:111111011 //补码右移三位: 111111111  -1System.out.println(a>>4);//补码:111111011 //补码右移四位: 111111111  -1System.out.println(a>>31);//补码:111111011 //补码右移31位: 111111111  -1System.out.println(a>>32);          //int为32 位的数,在位移时,等于没有移动  -5System.out.println(a>>34);//int 为32位的,位移34会进行取摸运算   34%32 =2  -2  System.out.println(a>>>1); //无符号负数的右移在最高位补1;//补码:111111011 //无符号右移1位:011111101  此时负数将变成一个正数

 

-3-2-1-1-1-5-22147483645

 

 

 

左移:

左移的符号:<<

左移无符号的正负数的符号:<<<

左移的右边补0

//左移正数int a = 5;//补码:00000101System.out.println(a<<1);//00001010 10System.out.println(a<<2);//00010100 20System.out.println(a<<31);//为一个负数,左移应注意

 

运算结果:1020-2147483648

 

 

左移负数:

左移都是右边补0

int a = -5;//补码:11111011 System.out.println(a<<1);//左移一位:11110110 -10System.out.println(a<<2);//左移两位:11101100 -20System.out.println(a<<31);//左移31会出现问题System.out.println(a<<34);//相当于左移两位//左移两位:11101100 -20

 

运算结果:-10-20-2147483648-20

 

 

使用位移来求二进制的问题:

public static void main(String[] args) {//通过右移将十进制的数转换成二进制int  a = 100;for(int i =31;i>0;i--){System.out.print(a>>i&1);}}

 

运算结果:0000000000000000000000000110010

 


  • 上一条:
    java.io操作 DataInputStream和DataOutputStream基本数据流
    下一条:
    Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在java中实现的脱敏工具类代码示例分享(0个评论)
    • zookeeper安装流程步骤(0个评论)
    • 在java中你背的“八股文”可能已经过时了(2个评论)
    • 在php8.0+版本中使用属性来增加值代码示例(3个评论)
    • java 正则表达式基础,实例学习资料收集大全 原创(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2018-03
    • 2020-03
    • 2023-05
    • 2023-11
    • 2024-01
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客