当前位置:   article > 正文

Java 自学 day04_java中二进制0b11111111

java中二进制0b11111111

进制

ideal中默认为十进制

二进制:数值前面加0b开头

八进制:数值前面加0开头

十六进制:数值前面加0x开头

注意:加入了进制标识符,但是在控制台上还是打印为十进制数据。-

进制转换

二进制到十进制的转换

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

系数:每一【位】上的数

基数:几进制就是几

权:从数值右侧,以0开始,逐次+1。

例如:二进制:0b100

十进制:0*2^0 = 0 0*2^1 = 0 0*2^2 = 4

三组相加为4

例如:十六进制到十进制

十六进制:0x100

十进制:0*16^0 + 0*16^1 + 1*16^2 = 256

进制转换

十进制到二进制

公式:除基去余

使用源数据不断除以基数(几进制就除以几)得到余数知道商为0,再将余数倒着组合起来。

快速进制转换法

8421码:(BCD代码)

二进制码:11111111

8421码: 128 64 32 16 8 4 2 1

二进制快速转换为十进制

转换规则: 1的取出相加,0的不取

二进制快速转换八进制

八进制:将三个二进制为一组,再进行转换组合

二进制转换为十六进制

十六进制:将四个二进制为一组,再进行转换组合

原码反码补码

正数的原反补是相同的

负数的【反码】,是根据【原码】取反(0变1,1变0 )。注意:符号位不变

负数的【补码】 是根据【反码 + 1】得到的

位运算

&  位与 : 遇false则false      遇0则0

|    位或: 遇true则true          遇1则1

^    位异或:相同为false ,不同为true

~    取反:   全部取反,0变1  1变0  (也包括符号位)

位移运算符

               << 有符号的左移运算,二进制向左移动,左边符号位丢弃,右边补齐为0

                       运算规律:向左移动几位就是乘以2的几次幂

               >>有符号的右移运算,二进制向右移动,使用符号位进行补位

                       运算规律:向右移动几位就是除以2的几次幂

             

               >>> 无符号右移运算符,无论符号位是0还是1,都补0 (用的少)

一、需求:已知两个整数变量a= 10,b = 20,使用程序实现这两个变量的数据交换最终输出a = 20,b = 
public class Damo1 {

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

        int temp = a;
        a = b;
        b = temp;

        System.out.println("a =" + a);
        System.out.println("b =" + b);
    }
}

二、需求:将数组里的内容完成颠倒存储

public class Damo2 {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 46, 50};

        int start = 0;
        int end = arr.length -1;

        //for(int start = 0, end = arr.length -1; start < end; start++, end--)

        for(; start < end; start++, end--){
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
        
        for(int i = 0; i < arr.length; i++){
            System.out.println(arr[i]);
        }
    }
}

二维数组

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

范例: int [ ] [ ] arr;

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

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

范例: Int arr [ ] [ ] ;

范例:int [ ] arr[ ] ;

//问题:二维数组中存储的是一维数组,能不能存储【提前准备好的一维数组】

public class Damo1 {
    public static void main(String[] args) {
       int[] arr1 = {11, 22, 33};
       int[] arr2 = {44, 55, 66};
       int[] arr3 = {77, 88, 99};

       int[][] arr = new int[3][3];

       arr[0] = arr1;
       arr[1] = arr2;
       arr[2] = arr3;

       System.out.println(arr[1][2]);


    }
}

二维数组的静态初始化

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

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

范例:int[ ] [ ]arr = {(11,22),(11,22)};

小练习1
public class Damo2 {

    /*
    需求:已知一个二维数组arr = {{11, 22, 33},{33, 44, 55}};
    遍历该数组,取出所有元素并打印
     */

    public static void main(String[] args) {
        int[][] arr = {{11, 22, 33},{33, 44, 55}};

        for (int i = 0; i < arr.length; i++) {
            //System.out.println(arr[i]);只能取出每一个的一维数组;
            int[] temp = arr[i];
            for (int f = 0; f < temp.length; f++) {
                System.out.println(temp[f]);
            }
        }
    }
}
小练习2

public class Damo3 {
    /*
    需求:
         某公司的季度和月份统计的数据如下:单位(万元)
         第一季度:22,66,44
         第二季度:77,33,88
         第三季度:25,45,65
         第四季度:11,66,99
         求和
     */
    public static void main(String[] args) {

        int sum = 0;

        int[][] arr = {{22, 66, 44}, {77, 33, 88}, {25, 45, 65}, {11, 66, 99}};

        for(int i = 0; i < arr.length; i++){
            for(int j = 0; j < arr[i].length; j++){
                 sum += arr[i][j];
            }
        }
        System.out.println(sum);
    }
}
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号