进制(逢几进几)

 

class Demo01

{

public static void main(String[] args)

{

System.out.println(0b100);//0b开头,二进制

System.out.println(0100);//八进制

System.out.println(100);//十进制

System.out.println(0x100);//十六进制

}

}

 

 java基础day02java基础day02java基础day02

 

进制转换

 

任意进制---》十进制

12345=1*10^4+...+5*10^0

位数*进制^(位数-1---(公式)

例子:

100=1*8^2+0*8^1+0*8^0

 

 

 

 

 

 

 

 

 

 

 

十进制到任意进制

/进制=......倒过来取余数

 

256/10=25......6   //十进制

25/10=2..........5

2/10=0............2

 

64/8=8.....0      //八进制  256/16=16.......0   //十六进制

8/8=1.......0  16/16=1...........0

1/8=0.......1  1/16 =0.........1

 

1Kb=8bit

 

八进制转十进制(分开算结果,合并每位数就是十进制数)

        111 100===74

        421  400

        4+2+1=7  4+0+0=4  ====74

  

什么是进制

 进制:就是进位制,是人们规定的一种进位方法。(几进制就是逢几进一)

 进制的分类:
 * 十进制   二进制  八进制    十六进制

不同进制的表现形式

 二进制的数据表现形式
    * 0,1组成。以0b开头

 八进制的数据表现形式
    * 0,1,2…………7组成。以0开头

 十进制的数据表现形式
    * 0,1,2.…………9组成。整数默认是十进制的

 十进制的数据表现形式
    * 0,1,2.…………9组成。整数默认是十进制的

 

 案例演示
    * 输出不同进制表现以(100)为例
    * 0b100(二进制)
    * 0100(八进制)
    * 100(十进制)
    * 0x100(十六进制)

1. System.out.println(0b100);

2. System.out.println(0100);

3. System.out.println(100);

4. System.out.println(0x100);

任意进制到十进制的转换

 十进制转十进制    
    例:12345=1*10^4 + 2*10^3 + 3*10^2 + 4*10^1 + 5*10^0

 二进制转十进制
   例:0b100=1*2^2 + 0*2^1 + 0*2^0

 八进制转十进制
    例:0100=1*8^2 + 0*8^1 + 0*8^0

 十六进制转十进制
   例:0x100=1*16^2 + 0*16^1 + 0*16^0

十进制到任意进制的转换

 十进制到任意进制的转换原理---除积倒取余

· 十进制转十进制

· 例:12345/10=1234……5

· 1234/10=123……4

· 123/10=12……3

· 12/10=1……2

· 1/10=0……1

· 十进制转二进制

· 例:8/2=4.…………0

· 4/2=2.…………0

· 2/2=1.…………0

· 1/2=0.…………1

快速的进制转换法8421码

8421码及特点 

 8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种.在这种编码方式中每一位二值代码的1都代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。 

*    二进制转十进制:把对应位数上的8421码依次相加

* 二进制转八进制:三位合一位,对应8421依次相加

* 二进制转十六进制:四位合一位,对应8421依次相加

* 十进制转二进制:对应8421码够减那位就补1否则是0

原码反码补码

 原码:就是二进制定点表示法,即高位为符号位,“0”表示正,“1”表示负,其余位表示数据的大小。(第八位为符号位)

通过一个字节,也就是8个二进制位表示+7和-7 

            0(符号位) 0000111 ------- +7

            1(符号位) 0000111 ------- -7

正数的原码,反码,补码都是他本身。(规律)

 

负数:

原码1 0000111

反码1 1111000  -------按位取反

+            1   ---------按位取反加1

------------------------

补码1 1111001    负数补码

补码0 0000111    正数补码

   10 0000000

又因为1Kb=8bit

所以取8位,1舍去

所以结果为0 0000000

 

反码:正数的反码与其原码相同;负数的反码是对其原码逐们取反但符号位除外 

 

补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1

 

 

 

+5  -5

 1 000 0101 ----- -5

 1 111 1010

 +         1

 1 111 1011

 0 000 0101 ------ +5

1 0 000 0000

 

 

 

java语言的数据类型

 java基础day02java基础day02

 整数默认:int 小数默认:double

1. //各数据类型之间的取值

2. /*int x = 4;//-2147483648~2147483647,占用4个字节(-2的31次方到2的31次方-1)

3. byte b = 2;//-128~127占用1个字节(-2的7次方到2的7次方-1)

4. short s = 30000;//-32768~32767占用2个字节(-2的15次方到2的15次方-1)

5. long l = 4l;//-9223372036854774808~9223372036854774807,占用8个字节(-2的63次方到2的63次方-1)

6. 

7. float f = 2.3f; //3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节

8. double d = 21.78;//1.797693e+308~ 4.9000000e-324 占用8个字节

9. char ch = 'a';

10. boolean bo = true;*/

11. 

12. /*

13. 什么时候定义变量?

14. 当数据不确定的时候,需要对数据进行存储时。

15. 就定义一个变量来完成存储动作

16. */

 

各数据之间的类型转换

自动类型转换(也叫隐式类型转换)

强制类型转换(也叫显式类型转换

案例一:

1. //类型转换

2. byte b= 3;

3. //b = b + 2; //这句进行自动类型转换

4. b= (byte)(b+ 2);//这句进行强制类型转换

5. System.out.println(b);

案例二:

1. //对比区别这两条输出语句

2. System.out.println('a');

3. System.out.println('a'+1);

运算符

· 算术运算符

· 赋值运算符

· 比较运算符

· 逻辑运算符

· 位运算符

· 三元运算符

算术运算符

 java基础day02java基础day02java基础day02

 赋值运算符

= , +=, -=, *=, /=, %=

比较运算符

 java基础day02java基础day02java基础day02

 逻辑运算符

&:先判断第一个条件是否为真,再去判断:若为真则判断第二个条件是否符合,两者为真则为真。如果第一个条件为假则为假,不用去判断第二个条件。

&&:(并且),若两个为真则为真,否则为假

||:(或者),若一个为真则为真,若两个为假则为假

|:先判断第一个条件是否为真,是则为真。就不去判断第二个条件。

 java基础day02java基础day02java基础day02

 位运算符

 java基础day02java基础day02java基础day02

 java基础day02java基础day02java基础day02

 三元运算符

格式:(条件表达式)?表达式1:表达式2;

——如果条件为true,运算后的结果是表达式1;

——如果条件为false,运算后的结果是表达式2;

 程序流程控制

· 判断结构

· 选择结构

· 循环结构

 

>>>判断结构

 java基础day02java基础day02java基础day02

>>> 选择结构

java基础day02java基础day02java基础day02

>>>循环结构

代表语句:while,do while,for

while语句格式

while (条件表达式)

{

执行语句;System.out.println();

A++;

}

先判断再执行

do while 语句格式

do

{

    执行语句;

}while(条件表达式);

 

do while循环语句的特点就是无论条件是否成立,循环体内的语句至少都要执行一次

先执行再判断

for 语句格式

for(初始化表达式;循环条件表达式;循环后的操作表达式

{

    执行语句;

}

 

循环条件的三要素:

1.起始条件

2.终止条件

3.循环条件

 

**** ** ***

 

  *

 ***

*****   2 1 0

 

  *  1行---1

 ***  2---3

*****  3--5

 ***  4---3

  *   5--1

 

*****

 ***

  *

 

其它流程控制语句

· break(跳出),continue(继续)

· break语句:应用范围:选择结构和循环结构。一般应用于switch语句

· continue语句:应用于循环结构。

 

如果i>0 *

***

 

 

 

 

class Demo01

{

public static void main(String[] args)

{

/*System.out.println(0b100);//0b开头,二进制的写法

System.out.println(0100);//八进制的写法

System.out.println(100);//十进制的写法

System.out.println(0x100);//十六进制的写法**/

//各数据类型之间的取值

/*int x = 4;//-2147483648~2147483647,占用4个字节-231次方到231次方-1

byte b = 2;//-128~127占用1个字节-27次方到27次方-1

short s = 30000;//-32768~32767占用2个字节-215次方到215次方-1

long l = 4l;//-9223372036854774808~9223372036854774807,占用8个字节-263次方到263次方-1

float f = 2.3f; //单精度 3.402823e+38 ~ 1.401298e-45e+38表示是乘以1038次方,同样,e-45表示乘以10的负45次方)占4个字节 

double d = 21.78;//双精度 1.797693e+308~ 4.9000000e-3248个字节 

char ch = 'a';//字符型,单引号,只能赋值一个字符。

String ss="dddddd";

boolean bo = true;

//long>int>short>byte  >double>float

什么时候定义变量?

当数据不确定的时候,需要对数据进行存储时。

就定义一个变量来完成存储动作

        //类型转换

byte b = 3;  //bbyte类型

//b = b + 2; //这句进行自动类型转换

b = (byte)(b + 2);//这句进行强制类型转换,不能写成b = (byte)b + 2;这里强制换bbyte类型

System.out.println(b);

//对比区别这两条输出语句

System.out.println('a');

System.out.println('a'+1);

System.out.println('a');

System.out.println('a'+1);//aASCII码为9797+1=98

System.out.println((char)4);

*/

int a=2;

//a=a+1;

//int b=a++;a++相当于a=a+1;把a+1赋值给a,---计数,,,a=3.b=2a赋值给ba再执行a++

//int b=++a;//a=3,b=3

a+=9;

System.out.println(a);

System.out.println(b);

}

}

 

 

 

相关文章: