day017:Java进制转换、原码反码补码、位运算、位移运算符

一、进制介绍:

1.进制:指进位制,表示某一位置上的数,运算时是逢X进一。

十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一。

2.Java中默认的数值都是十进制,如果要输入其他进制,在数值前面加:

二进制:数值前面加0b

八进制:数值前面加0

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

注:在Java中,即使在数值前面加了其他进制的标识,控制台输出的数据仍为十进制数据。

3.其他进制转换为十进制的方法:

例如,二进制转换为十进制:

十六进制转换为十进制:

八进制转为十进制的方法也如上。

4.十进制转为其他进制的方法:

十进制转二进制:

 十进制转十六进制:

 5.快速进制转换法

用8421码,又称BCD码。

例如:

二进制快速转十进制:

二进制快速转八进制:

(三个二进制位为一组)

 

 二进制快速转十六进制:

(四个二进制位为一组)

 (注:至于八进制与十六进制的转换,可先将八进制或十六进制先转换为二进制,再进行所需要的转换)


二、原码、补码、反码

1.原码、补码、反码介绍:

计算机中的数据,都是以二进制补码的形式进行运算,而补码是通过原码和反码推算出来的。

一个字节是八个二进制位。int为四个字节,即四组八个二进制位。

正数与负数的原码反码补码介绍:

把int类型的数值强转为byte类型时,精度损失问题:


 三、位运算符

1.位运算符的介绍:位运算符指的是二进制位的运算,先将十进制数转为二进制数再进行运算。

2.在二进制位运算中,1表示true,0表示fales。

3.  &:  位与  遇false则false(即遇0则0)

     | :  位或  遇true则true   (即遇1则1)

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

(注:一个值,被另一个值异或两次,该数本身不变。)例子如下:

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

 


四、位移运算符

1.<< :有符号左移运算,二进制位向左移动,左边符号位丢弃,右边补齐0。

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

eg:System.out.println(12 << 1);  代表12向左移动1位,即12乘以2的一次幂,控制台输出24。

 2.>>:有符号右移运算,二进制向右移动,使用符号位进行补位。

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

eg:System.out.println(3 >> 1); 代表3向右移动1位,即3除以2的一次幂,控制台输出1。(因为int类型只能输出整数,小数不要)

 3. >>> 无符号右移运算,无论符号位是0还是1,都补0。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZQyyds:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值