赞
踩
进制
在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); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。