当前位置: 首页 > news >正文

java中逻辑右移;算术右移的区别

java中逻辑右移">>>"算术右移">>"的区别?

>>右移运算符,有符号。右边超出截掉,左边补上符号位 

>>>右移运算符,无符号,左边补0 

算术右移 顾名思义 算术嘛 当然要带符号了 所以要补上符号位 负的就填1 正的就填0 
那个逻辑右移 直接补上0就ok

例子: 
byte a=~127;
System.out.println(a);
a=(byte)(a>>>2);
System.out.println(a);

结果如下
-128
-32

分析: 
首先,~127的二进制数为10000000,(~127是取反运算
但是JAVA在对不足32位的数(byte,char,short)进行移位运算时候,都会先转成int(32位),所以此时a为11111111111111111111111110000000
移位之后,(00)111111111111111111111111100000
但是你在此a=(byte)(a>>>2); //强制转成byte型,将对结果进行截断
此时a为11100000,就是32了  

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java中的接口继承
  • ftp测试练习
  • JTabel鼠标按下与放开getValueIsAdjusting()
  • display.syncExec方法例子
  • 常用的网络
  • Netty 5用户指南
  • netty 学习 (4)混合使用coder和handler
  • netty 学习 (3)发送对象
  • netty 学习 (2)Handler的执行顺序
  • netty 学习 (1)
  • Java设计模式——工厂设计模式
  • Java开发中的23种设计模式详解(转)
  • CMMI学习
  • NetConf协议说明
  • HashMap 与 ConcurrentHashMap
  • 网络传输文件的问题
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • es的写入过程
  • express + mock 让前后台并行开发
  • Git同步原始仓库到Fork仓库中
  • JS数组方法汇总
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Mithril.js 入门介绍
  • node和express搭建代理服务器(源码)
  • Promise面试题2实现异步串行执行
  • Unix命令
  • 订阅Forge Viewer所有的事件
  • - 概述 - 《设计模式(极简c++版)》
  • 机器学习 vs. 深度学习
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 配置 PM2 实现代码自动发布
  • 前端_面试
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 试着探索高并发下的系统架构面貌
  • 首页查询功能的一次实现过程
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ######## golang各章节终篇索引 ########
  • #if等命令的学习
  • (06)Hive——正则表达式
  • (java)关于Thread的挂起和恢复
  • (MATLAB)第五章-矩阵运算
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (规划)24届春招和25届暑假实习路线准备规划
  • (四)JPA - JQPL 实现增删改查
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (译) 函数式 JS #1:简介
  • .bat批处理(一):@echo off
  • .net 发送邮件
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 使窗口永不获得焦点