第四章、JavaSE专题之进制&位运算详述

1、四种进制介绍

(1)二进制:0、1,满2进1;

(2)十进制:0-9,满10进1;

(3)八进制:0-7,满8进1;

(4)十六进制:0-9及A(10)-F(15),满16进1,以0x或0X开头。

  • 范例
package com.lizhi;
public class hello{
    public static void main(String[] args){
        // 二进制
        int n1 = 0b1010;
        // 十进制
        int n2 = 1010;
        // 八进制
        int n3 = 01010;
        // 十六进制
        int n4 = 0x10101;
        System.out.println(n1);
        System.out.println(n2);
        System.out.println(n3);
        System.out.println(n4);
    }
}
  • 运行结果

在这里插入图片描述

2、原码、反码、补码
  • 计算机中数据存储的方式以补码方式存储

Ⅰ、二进制的最高位是符号位:0代表整数,1表示负数;

码类型二进制码值
5的原码00000101
-5的原码10000101

Ⅱ、正数的原码,反码,补码都一样(三码合一);

码类型二进制码值 (以5为例,byte类型)
原码00000101
补码00000101
反码00000101

Ⅲ、负数的反码=原码符号位不变,其他位置取反,负数的补码=它的反码+1

码类型二进制码值(以-5为例,byte类型)
原码10000101
补码11111010
反码1111011

Ⅴ、0的反码,补码都是0

Ⅵ、java中没有无符号数,换言之,java的数都是由符号的

Ⅶ、计算机运算的时候,都是以补码的方式来运算的;

Ⅷ、当我们查看运算结果时,要看他的原码

3、位运算

(1)位运算符总览

运算符运算范例结果
按位与&两位全为1,结果全为1,否则为02&32
按位 |两位有一个为1,结果为1,否则为02 | 33
按位异或 ^两位一个为0,一个为1,结果为1,否则为02 ^ 31
按位取反~0->1,1->0~2-3
算数右移>>低位溢出,符号位不变,并用符号位补溢出的高位1>>20
算数右移<<符号位不变,低位补01<<24
  • 范例
public class hello{
    public static void main(String[] args){
        int n1 = 2&3;
        int n2 = 2|3;
        int n3 = 2^3;
        int n4 = ~2;
        int n5 = 1>>2;
        int n6 = 1<<2;
        System.out.println(n1);
        System.out.println(n2);
        System.out.println(n3);
        System.out.println(n4);
        System.out.println(n5);
        System.out.println(n6);
    }
}
  • 运算结果

在这里插入图片描述

(2)位运算计算过程详述

  • 范例:2&3的位运算结果

  • 计算过程解析

码类型二进制码值
2的原码00000000 00000000 00000000 00000010
2的补码00000000 00000000 00000000 00000010
3的原码00000000 00000000 00000000 00000011
3的补码00000000 00000000 00000000 00000011
按位&00000000 00000000 00000000 00000010
00000000 00000000 00000000 00000011
运算后的补码00000000 00000000 00000000 00000010
运算后的原码00000000 00000000 00000000 00000010
运算结果2
public class hello{
    public static void main(String[] args){
        int n1 = 2&3;
        System.out.println(n1);
    }
}
  • 运行结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随缘清风殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值