基础知识

1.1常量:

基本数据类型常量

字符常量

 

整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制)

 

生活中:十进制(0-9)  ,星期(七进制(0-6)) ,时间(十二进制(0-11),二十四进制(0-23))

 

计算机是通过二进制来读取我们生活中的数据。

 

进制之间的转换:

 十进制转为二进制: 将十进制除以2,直到商为0 ,将余数从下上连接起来就是二进制

 

10---->1010

二进制转十进制:将二进制的每一位乘以2^n ,n0开始,n每一次加一,在将结果相加。

 

1001 ----》  1*2^0 +0*2^1 +0*2^2+1*2^3 = 9

 

将二进制换位八进制:

方式一:二进制--->十进制--->八进制

方式二:一个八进制相当于三个二进制为,将二进制三位一分割,计算出来

010 100 101 =  245

 

将二进制换为十六进制 (0-9)(a(10)-f(15))

0000 1010 0101 = a5

 

 

1.2变量:

Java数据类型分为两种:

1.基本数据类型

Byte (字节) 8位(bit

 2.引用数据类型

String 字符串。

 

 

变量的声明方式:

//1.数据类型  变量名

//2.数据类型  变量名1,变量名2...

 

数据类型:

//数据类型的转换

//1.自动类型转换

// 小数据类型--->大数据类型转换

//2.强制类型转换

// 大的数据类型 ----> 小的数据类型。

 

//数据类型转换中需要注意的点:

//1.凡是short byte ,char 定义的变量,在做运算的时候,

//数据类型都会自动转换为int

 

//2.两个不同数据类型做运算,给过取决于大的数据类型。

 

二.运算符。

1.1算数运算符:+,-,*,/,%

1.2自增自减 :++ --

1.3赋值运算符 : = +=-=*=/=

1.4关系运算符 : >,<,>=,<=,== ,!=

逻辑运算符: & ,| ,! ,&& ,||

 

位运算符:

它是对二进制位进行计算。

位运算符是可以对十进制的整数进行计算,计算方式:将十进制转为二进制进行计算。

 

二进制由01组成,所以计算的结果要么是0,要么是1

 

1.5位运算符的符号:

& ():两者都是1的时候我就是一,其他都是0

|():两者都为0时才为0 ,其他的都是1.

^(异或):两者不同为1,相同为0

~(取反)0变为11变为0.

 

//负数的表现形式: 二进制位的最高位为1,那么这个数就是一个负数。

 

1111-1111  1111-1111 1111-1111 1111-1111 -1

0000 0000 0000 0000 0000 0000 0000 0000 0

 

-2:1111-1111  1111-1111 1111-1111 1111-1110

-3:1111-1111  1111-1111 1111-1111 1111-1101

-4:1111-1111  1111-1111 1111-1111 1111-1100

-5:1111-1111  1111-1111 1111-1111 1111-1011

-6:1111-1111  1111-1111 1111-1111 1111-1010

-7:1111-1111  1111-1111 1111-1111 1111-1001

0000-0000  0000-0000 0000-0000 0000-0111  = 7

1111-1111 1111-1111 1111-1111 1111-1001

 

规律:负数所对应的正数-1 ,取反

  负数所对应的正数取反+1

作用:数据进行加密

 

123456

0-100 a-z

 

24845845957512317580960  --- >123456

 

1.6移位操作符:对二进制位进行操作

1.6.1  >>  右移

1.6.2  <<  左移

1.6.3  >>> 无符号右移

 

// >> 右移

// << 左移

// >>> 无符号右移

 

//右移:

System.out.println(6>>1); // --->3  6/2  2*1

System.out.println(6>>2); // --->1  6/4  2*2

System.out.println(6>>3); // --->0  6/8  2*3

System.out.println(6>>4);

 

 

System.out.println(9>>1); // --->4   9/2  2*1

System.out.println(9>>2); // --->2  9/4  2*2

System.out.println(9>>3); // --->1  9/8  2*3

System.out.println(9>>4);//  --->0  9/16

 

System.out.println(-6>>1); //  -6/2 -->-3

 

//规律: 右移多少位,就用需要移动的数除以2的多少次方。

 

//左移 :

System.out.println("-----这个是左移的结果----------");

System.out.println(6<<1); // --->12  6*2  2*1

System.out.println(6<<2); // --->24  6*4  2*2

System.out.println(6<<3); // --->48  6*8  2*2*2

System.out.println(6<<4); //---->96  6*16 2*2*2*2

 

System.out.println(-6<<2);//--->-24

 

//规律: 左移多少位,就用这个数乘以2多少次方。

 

//>>>无符号的右移

System.out.println(6>>>1); //3

System.out.println(6>>>2); //1

System.out.println(-6>>>2); // 1073741822

 

原理:见图片。

 

作用 提高运算速率。位运算是执行最快。

比如: 以最快的方式计算 2*8

  2<<3  == 2*8 = 16

 

特点 : 一个数A和两个相同的数^,最后结果还是原来的数A

posted @ 2016-11-14 19:14  大雨IT  阅读(250)  评论(0编辑  收藏  举报