Java基础-02-进制间转换

Java基础

计算机基础

1、在计算机中整数常量有几种表现形式。

(1)、十进制:逢十进一。

(2)、八进制:逢八进一,在计算机中用0表示开头。

(3)、十六进制:逢十六进一,用0x表示开头。

(4)、二进制:逢二进一。

2、二进制。 二进制早起由电信号演变而来的。(开\关)。 在内存中我们可以用数字来代表开关。(0\1) 二进制的基本单位:1字节(八个开关组成) = 8位 
十进制与二进制之间的转换。

(1)、十进制转二进制:(原理):对十进制数进行除运算 Eg:6的二进制。如图:

(2)、二进制转十进制:(原理):二进制乘2的过程。 Eg:110的十进制:如图

(3)、二进制间的加减运算。

3、进制转换: 二进制--->八进制:3位二进制转成1位八进制。 二进制 --->十六进制:4位二进制转成1位十六进制。

(1)、二进制 --->十六进制

(2)、二进制--->八进制

(3)、负数二进制的表示形式

6 = 110
-6 其实就是6的二进制取反加1.
Eg:110 ------> 在内存当中其实占4个字节,如下
0000-0000 0000-0000 0000-0000 0000-0110    =    6
取反:将二进制的1变0,0变1.
1111-1111 1111-1111 1111-1111 1111-1001   (取反)
加1:
1111-1111 1111-1111 1111-1111 1111-1010      = -6

规律:负数的二进制最高位是1.取反得来 正数的二进制最高位是0.

4、类型转换:

不同类型之间进行操作的时候,类型会自动进行提升,容量小的转换为容量大的类型。但另外一种方式系统中的变量类型会被强制改变,那就是强制转换, 方式:类型() Eg:b = (byte)(b+2); //该表达式意思为变量b+2之后的结果被强制改变为byte类型的数据。

5、字符串连接:+

System.out.println("haha"+"haha");
//字符串数据和任何数据使用+都是连接。最后都会变成字符串。
System.out.println("ab"+5+5);
//"ab5"+5------->"ab55"
//若a = 4;
//为了让输出直观一些
System.out.println("a="+a);       //a = 4

6、转义字符:通过\来转变后面字母或者符号的含义。 常用转义字符: \n:换行 \b:退格

7、赋值运算符 Eg:

short s = 4;
s = s+5; //程序挂掉,二次运算 。 (有精度损失)
s+=5;//程序不挂,一次运算。(有自动转换动作)

8、逻辑运算符:用于连接boolean类型的表达式 (1)、

& :与, | :或, ^ :异或(就是和|有点不一样,即两边相同----->X,两边不同------>√。

Eg:     当√   ^    √    -------->     X
         当√   ^    X   -------->      √
         当X  ^    √    --------->     √
         当X  ^    X    --------->     X

!: 非 &&: 比&效率高,短路。 Eg:

int a = 4 ;
a<3 && a< 6;      //true
int a  = 2;
a>3 && a<6;       //false,但是与&不同的是,当判断a>3的时候语句结果为false,该语句就会结束且返回false的结果,因 为&&的特点是当左边已经为false了,右边无论是什么值都无需继续判断而直接输出false的结果了,因此比&高效。

9、位运算符:二进制运算符

<<:二进制向左移,最高位的两位数补到原来的最低两位。如图:\



 >>:二进制向右移,最高位补什么由原有的数据的最高位值而定。如果最高位为0,右移后,用0补空位。如果最高位为1,右移后,用1不空位。如图:



 >>>:无论最高位是什么,右移后都用0补。

10、位运算符(与&、或 |、异或^),参与运算的数都转为二进制进行运算。

(1)、&: 6&2 如图

(2)、| : 6|5 如图:

(3)、 ^ : 6^5 如图:

小技巧:一个数异或一个数两次,结果还是那个数,应用:加密。 Eg:7^4^4 和7^4^7 如图:

(4)、 ~: 负数二进制算十进制的方法:二进制减一取反!

11、练习题

(1)、对两个整数变量的值进行互换(不需要第三个变量) 方法一:

int n = 3 , m = 8 ;
n = n + m;               //如果n和m的值非常大,这样容易超出int的范围
m = n - m ; 
n = n - m;

方法二:(异或的方法)

n  =  n  ^  m;
m  =  n  ^  m;             //(n ^ m) ^ m;
m  =  n  ^  n;             //(n ^ m) ^ n;

(2)、求一个二进制数的十六进制形式。用一种新方法。 使用&1111的方法来求:如图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值