【JavaSE】【基础语法04】进制&原码反码补码&运算符

一、进制

位(bit) — 计算机中最小的存储单位
字节(byte) — 计算机中基本的存储单元 (最小的数据单位为字节)

1byte = 8bits、1KB = 1024Byte、1MB = 1024KB、1GB = 1024MB、1T = 1024GB

对于整数,有四种表示方式:

  • 二进制:0,1 ,满2进1. 以0b或0B开头(字母B大小写均可)。
  • 十进制:0-9 ,满10进1.
  • 八进制:0-7 ,满8进1. 八进制数被冠以0来表示。
  • 十六进制:0-9及A-F,满16进1; 十六进制数被冠以0X来表示(字母X大小写均可)
    如: 0x3f20(十六进制) 0732 (八进制)
public class JinZhi{
	public static void main(String[] args){
		//最终打印的结果是十进制
		System.out.println("十进制:" + 10);
		System.out.println("二进制:" + 0B10);
		System.out.println("八进制:" + 010);
		System.out.println("十六进制:" + 0X10);
	}
}

println()打印默认按照十进制打印
十进制:10
二进制:2
八进制:8
十六进制:16

1.1 进制转换

1.1.1 二进制与十进制之间的转换

在这里插入图片描述

1.1.2 二进制 八进制 十六进制互转

二进制转八进制:三位一组,算出这三位对应的十进制值,然后挨个连接上即可
二进制转十六进制:四位一组,算出这四位对应的十进制值,然后挨个连接上即可
在这里插入图片描述
在这里插入图片描述

1.1.3 十进制与八进制或十进制与十六进制之间的转换

建议通过二进制过渡一下
在这里插入图片描述

二、原码反码补码

0、 数字在计算机内部的存储形式

  • 带符号的二进制形式存储
    最高位存放符号, 正数为0, 负数为1。

  • 比如:
    Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位。

1、原码

原码即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
在这里插入图片描述

2、反码

  • 正数的反码是其本身
  • 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
    在这里插入图片描述

3、补码

  • 正数的补码就是其本身
  • 负数的补码是在反码的基础上+1
    在这里插入图片描述

为什么要使用原码、反码、补码表示形式呢?

  • 计算机在执行计算的时候,实际运算都是补码在运算,运算完再转成原码
  • 举例说明:1 - 1 = 1 + (-1) = 0
    在这里插入图片描述
    注意: 补码在做运算的时候符号位也参与运算

4、-128

0000 0000:0
0000 0001 ~ 0111 1111 : 1~ 127
1000 0001 ~ 1111 1111 : -127 ~ -1
1000 0000:-128
	(-127) - (1) = -128
	(1000 0001  - (0000 0001)= (1000 0000)

在这里插入图片描述
-1 - 127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补就应该是-128.
但是此时如果用[1000 0000]补到反码,再到原码去计算是不对的,所以-128是个特殊值,记住它

二、运算符

  • 运算符:
    1、算术运算符
    2、赋值运算符
    3、比较运算符(关系运算符)
    4、逻辑运算符
    5、条件运算符
    6、位运算符

  • 表达式
    表达式 = 操作数+运算符,是一个有明确结果的计算式;可以当做一个值来用

1、算术运算符

(1)加、减、乘、除:+、-、*、/
除:当两个整数相除时,只保留整数部分

(2)取模(求余数):%
取模:被模数%模数,当模数有负号时,会被忽略

    @Test
    public void test02(){


        System.out.println(5/2);//2
        System.out.println(5/-3);//-1
        System.out.println(5%2);//1
        System.out.println(5%-3);//2

        System.out.println(-7/2);//-3
        System.out.println(-7/-3);//2
        System.out.println(-7%2);//-1
        System.out.println(-7%-2);//-1

        //取模的符号跟左边对其
    }

(3)+:作为单目运算时表示正数
与其他基本数据类型计算时当做加法用
当与字符串String类型进行运算时表示连接,计算结果是字符串String类型

(4)-:作为单目运算符时表示负数
与其他基本数据类型计算时当做减法用

(5)++,-- 自增和自减
++在前,变量先自增,然后参与其他运算,在后,变量的值先参与其他运算,然后变量本身在自增
–类似

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值