Java补充小知识

1 进制数

十进制:Java中,数值默认都是10进制,不需要加任何修饰。
二进制:数值前面以0b开头,b大小写都可以。
八进制:数值前面以0开头。
十六进制:数值前面以0x开头,x大小写都可以。

注意:
书写的时候, 虽然加入了进制的标识, 但打印在控制台展示的都是十进制数据.

(1)十进制到任意进制转换

公式:除基取余使用源数据,不断的除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可

(2)任意进制到十进制转换

公式:系数*基数的权次幂相加

  • 系数:每一[位]上的数
  • 基数:几进制,就是几
  • 权:从数值的右侧,以开始,逐个+1增加

2 原码反码补码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 位运算

位运算符指的是二进制位的运算,先将十进制数转成二进制后再进行运算。在二进制位运算中,1表示true,0表示false。

在这里插入图片描述
<< 有符号左移运算,二进制位向左移动, 左边符号位丢弃, 右边补齐0
运算规律: 向左移动几位, 就是乘以2的几次幂

>> 有符号右移运算,二进制位向右移动, 使用符号位进行补位
运算规律: 向右移动几位, 就是除以2的几次幂

>>>无符号右移运算符, 无论符号位是0还是1,都补0

注意:
一个数被另一个数异或两次,该数本身不变

案例:交换两个数据

public static void main(String[] args) {
    
    
    int a = 10;
    int b = 20;

    // 将a原本记录的值,交给temp记录 (a的值,不会丢了)
    int temp = a;
    // 用 a 变量记录 b 的值,(第一步交换完毕,b的值也丢不了了)
    a = b;
    // 使用 b 变量记录 temp的值,也就是a原本的值 (交换完毕)
    b = temp;

    // 输出 a 和 b 变量即可
    System.out.println("a=" + a);
    System.out.println("b=" + b);
}

不允许使用第三方变量

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hu_wei123/article/details/125245707