Java中位移运算

数据类型

  • 计算机存储单元

      计算机存储设备的最小信息单元是“位(bit)”,又称为比特位,常用小写字母“b”表示。计算机中最小的存储单元是“字节(byte)”,通常用大写字母“B”表示,字节是由连续的8个位组成。其他常用的存储单位如下:

    1B = 8bit;
    1KB = 1024B;
    1MB = 1024KB;
    1GB = 1024MB;
    1TB = 1024GB

  • 数据类型

      Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所有它们表示的数据大小也是不一样的。
    在这里插入图片描述

  • 数据类型内存占用和取值范围

    在这里插入图片描述

二进制中的原码、补码、反码

  1. 有符号数

      对于有符号数而言,符号的正、负机器是无法识别的,但由于"正、负"恰好是两种截然不同的状态,如果用"0"表示“正”,用“1"表示"符”,这样符号也被数字化了,并且规定将它放在有效数字的前面,即组成了有符号数。所以,在二进制中使用最高位(第位)来表示符号,最高位是0,表示正数,最高位是1,表示负数。

  2. 无符号数
      无符号数是针对二进制来讲的,无符号数的表数范围是非负数。全部二进制均代表数值(所有位都用于表示数的大小),没有符号位。即第一个"0"或"1"不表示正负

  3. 对于有符号数而言的性质

    (1)二进制的最高位是符号位: 0表示正数,1表示负数
    (2)正数的原码、反码、补码都一样
    (3)负数的反码 = 它的原码符号位不变,其他位取反 (0 ->1 ; 1->0 )
    (4)负数的补码 = 它的反码 +1
    (5)0的反码、补码都是0
    (6)在计算机运算的时候,都是以补码的方式来运算的

  4. 有符号数运算

    1.正数相加:

例如: 1+1,java运算int n = 1+1:
1的原码为:
OOOOOOOO OOOOOOOO OOOOOOOO OOOOOOO1
反码:OOOOOOOO OOOOOOOO OOOOOOOO OOOOOOO1
补码:OOOOOOOO OOOOOOOO OOOOOOOO OOOOOOO1
两数的补码相加: 00000000 00000000 00000000 00000010 
(转换为10进制) =2

  2.正数相减

例如: 1-2 运算如下:
在计算机中减运算其实是作为加运算来操作的,所以,1-2 = 1 +(-2)
第一步: 获取1的补码00000000 00000000 00000000 00000001
第二步: 获取-2的补码
-2的原码:10000000 00000000 00000000 00000010
-2的反码:11111111 11111111 11111111 11111101
-2的补码:11111111 11111111 11111111 11111110
第三步: 1的补码与-2的补码相加:
00000000 00000000 00000000 00000001
11111111 11111111 11111111 11111110
第三步:1的补码与-2的补码相加:
00000000 00000000 00000000 00000001
11111111 11111111 11111111 11111110
= 11111111 11111111 11111111 11111111 
第四步:将计算结果的补码转换为原码,反其道而行之即可
(如果想将二进制转换为十进制,必须得到二进制的原码)
补码:11111111 11111111 11111111 11111111
反码:11111111 11111111 11111111 11111110
原码:10000000 00000000 00000000 00000001
第五步: 将计算结果的二进制原码 转换 为十进制
一进制制原码: 10000000 00000000 00000000 00000001 
(转换为10进制)= -1

位移运算

  • <<左移
  • >>右移
  • >>> 无符号右移
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值