JAVA debug 进制 位运算 二维数组

Debug:

是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。

进制介绍

进制:指进位制,是人们规定的一种进为方式,表示某一位置上的数,运算时逢x进一位。

十进制是逢十进一,二进制就是逢二进一。

Java中:数值默认就是10进制不需要加任何修饰

               二进制:数值前面以0b开头,b不分大小写。

                八进制:数值前面以0开头。

                十六进制:数值前面以0x开头,x不分大小写。

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

进制转换

二进制到十进制的转换

公式:系数*技术的权次幂相加。

        系数:每一位上的数。

        基数:几进制,就是几。

        权:从数值的右侧,以0开始,逐个加1增加。

任意进制到十进制

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

十进制到任意进制

公式:除基取余。

        使用源数据,不断的除于基数(几进制,基数就是几)得到余数,知道商为0,再将余数倒着拼起来即可。

原码反码补码

介绍:计算机中的数据,都是以二进制补码的形式在计算,而补码是通过原码和反码推算出来的。

原码:可以直观的看出数据大小(看数据)

反码:原码转补码的一个中间形式(转数据)

补码:数据以该状态进行运算(运算数据)

正数的原码反码补码是相同的

负数的反码,是根据原码取反(0变1,1变0)得到的(符号位不变)

负数的补码,是根据反码的末尾+1,得到的

 位运算符

符号

计算方式

&

遇到0则0,两边同时为1,结果才是1.
|遇到1则1,两边同时为0,结果才是0.
^       相同为false,不同为true
~取反,二进制位全部取反,0变1,1变0,包括符号位
<<有符号左移运算,根据符号位,右边补0
>>有符号右移运算符,根据符号位,补齐左边
>>>无符号右移,无论符号位是0还是1,都补0

1:是true

0:是false

案例:数据交换

需求:已知两个整数变量a = 10,b = 20,使用程序使两个变量数据交换最终输出

a = 20,b = 10;

不使用中间变量

public static void mian(String[] args){
    int a = 10;
    int b = 20;
    a = a ^ b;    //a = a ^ b
    b = a ^ b;    //b = a ^ b ^ b
    a = a ^ b;    //a = a ^ b ^ a
    System.out.println(a);
    System.out.println(b);
}

A变量异或两次相同的变量B,这个变量等于A变量本身。

二维数组

二维数组也是一种容器,不同于一维数组,该容器存储的都是一维数组容器。

二维数组的定义

格式1:数据类型[][] 变量名;

格式2:数据类型 变量名[][];

格式3:数据类型[] 变量名[];

二维数组的动态初始化 

格式:数据类型[][] 变量名  = new 数据类型 [m] [n];

m:表示这个二维数组,可以存放多少个一维数组。

n:表示每一个一维数组,可以存放多少个原素。

数组初始化的时候 new  之后会在栈内存中开出来一个空间存放数组的

这个栈内存中的地址给到前面的变量名。

[[I@10f87f48

@:分隔符,10f87f48:十六进制内存地址,I:数组中存储的数据类型

[[:几个中括号就代表的是及伪数组。

注意:二维数组存储一维数组的时候,存储的是一维数组的内存地址。

二维数组静态初始化

格式:数据类型 [][] 变量名 = new 数据类型[][] {{元素1,元素2,···},{元素2,元素2···}···};

,{元素简化格式:数据类型[][] 变量名 = {{元素1,元素2,···},{元素1,元素2···}···};

二维数组的遍历

int [][] arr = {{11,22,33},{44,55,66}};

fro(int i = 1,i<arr.length;i++){
    fro(int j = 1;j<arr[i];j++){
        System.out.println(arr[i][j]);
    }
}
        

通过两个for循环遍历二维数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值