个人博客 地址:https://www.wenhaofan.com/a/20181029232749

有符号右移

正数有符号右移

首先计算4>>2

将4转为二进制

0000 0100

右移两位,符号位为0,所以高位置0得

0000 0001

转二进制得 1

所以 4>>2 =1

负数有符号右移

再来计算-4>>2

首先我们需要取得-4的补码 补码为反码+1

反码为正码按位取反

由正码0000 0100  取反得

1111 1011

再+1得

1111 1100

右移两位,符号位为1,所以高位置1得

1111 1111

此时减一得补码

1111 1110

补码转正码得

0000 0001

十进制为1,加负号得

-1

无符号右移

正数无符号右移

6>>>2

正数无符号右移

取6的二进制

0000 0000 0000 0000 0000 0000 0000 0110

右移2位,最高位置0

0000 0000 0000 0000 0000 0000 0000 0001

转为10进制得

1

负数无符号右移

-6 >>>2

先得6的二进制

0000 0000 0000 0000 0000 0000 0000 0110

按位取反,得反码

1111 1111 1111 1111 1111 1111 1111 1001

反码+1得补码

1111 1111 1111 1111 1111 1111 1111 1010

右移,高位置0得

0011 1111 1111 1111 1111 1111 1111 1110

转10进制得

1073741822

Java,C 位移运算符 有符号右移>>与无符号右移>>>的更多相关文章

  1. Java负整数的左移、右移、无符号右移

    转自  Java负整数的左移.右移.无符号右移 Java负整数的左移.右移.无符号右移.正数的位移没有涉及到符号,而且正数的原码.反码.补码都是一样的,所以相对简单,但是对于负整数的位移,往往容易混淆 ...

  2. 分析轮子(二)- << ,>>,>> (左移、右移、无符号右移)

    前言:写 分析轮子(一)-ArrayList.java 的时候看到源码中有 int newCapacity = oldCapacity + (oldCapacity >> 1); 这样的代 ...

  3. java中符号类型和无符号类型的问题分析

    一 参考博文 java中无符号类型的解决方案 二 java中的无符号数和有符号数 在计算机中,可以区分正负的类型,称为有符号类型,无正负的类型,称为无符号类型. 使用二进制中的最高位表示正负 计算机中 ...

  4. C-基础:表达式中存在有符号类型和无符号类型时,都自动转换为无符号类型

    void foo(void) { unsigned ; ; (a+b > ) puts("> 6") : puts("<= 6"); } 答案 ...

  5. c++ 有符号int和无符号int做加减乘除问题

    c++ 有符号int和无符号int做加算术运算的问题: 一.运算过程先把有符号的补码数直接看成无符号数,在和无符号数进行算术运算 二.int和unsigned int类型进行混合算数运算时,运算结果为 ...

  6. Java 中位移运算符 >>,>>>,<<

    Java 中的三种位移运算符 java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     ...

  7. Java:位移运算符

    Java中有三个位移运算符,用于对int类型整数的二进制补码进行操作: 1. "<<": 左移运算符 在二进制补码末尾添加“0”,之前的其他位相当于左移了一位,可看作成 ...

  8. java的<<左移,>>右移,>>>无符号右移

    >>右移 右移,道在二进制中,假设用一个32位的Int表示一个64,那么高位就都是0,所以当我们把整个二进制数右移,如0100000 >> 2 = 0001000,可以看到右移 ...

  9. 利用Java位运算符,完成Unsigned转换(无符号)

    方案二:利用Java位运算符,完成Unsigned转换. 正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码: publi ...

随机推荐

  1. MySql新版本安装配置

    版本:mysql-5.7.16-winx64 平台Windows 7 x64 1.进入mysql主目录(建议将其移到C或D盘的根目录,并改名为mysql) 2.配置path环境变量(如D:\JAVA\ ...

  2. golang学习笔记(二):流程控制

    欢迎访问我的博客和github! 今天咱们把烦人的事情丢一丢,继续来学习go的基础知识. 这篇文章记录go语言的流程控制和更多类型. 流程控制 for Go 只有一种循环结构:for 循环. 基本的 ...

  3. HDU 6521 K-th Closest Distance (主席树+二分)

    题意: 给你一个数组,q次询问,每次问你[l,r]范围内与p距离第k大的元素的与p的距离,强制在线 思路: 主席树提取出[l,r]内的权值线段树,然后二分与p的距离mid ask该权值线段树里[p-m ...

  4. bootstrap 图片类 和 按钮类 部分

    bootstrap框架,来自 Twitter,基于 html ,css ,js.简介灵活. 首先引入  bootstrap.js   bootstrap.css  及 jquery.js  这里不考虑 ...

  5. Maven项目pom文件的节点释意

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  6. hbase架构和读写过程

    转载自:https://www.cnblogs.com/itboys/p/7603634.html 在HBase读写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证 ...

  7. [Redis-CentOS7]Redis数据持久化(八)

    配置文件位置 /ect/redis.conf RDB存储配置 save 900 1 # 900秒之内发生一次写操作保存 save 300 10 # 300秒内写10次保存 save 60 10000 ...

  8. light oj 1067 费马小定理求逆元

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1067 1067 - Combinations Given n differen ...

  9. PBFT 算法 java实现(下)

    PBFT 算法的java实现(下) 在上一篇博客中(如果没有看上一篇博客建议去看上一篇博客),我们介绍了使用Java实现PBFT算法中节点的加入,view的同步等操作.在这篇博客中,我将介绍PBFT算 ...

  10. Vue使用Clipboard.JS在h5页面中复制内容

    安装clipboard.js github路径:https://github.com/zenorocha/clipboard.js 安装: npm install clipboard --save 引 ...