目录
一、二进制
二进制数据用0和1两个数码来表示数。 在java中以0b或0B开头
int num1= 0b110;
基数为2,进位规则为"逢二进一",借位规则是"借一当二"。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储。
计算机中的二进制则是一个非常微小的开关,用"开"来表示1,“关”来表示0
1.1 二进制转换为十进制
10100 这是一个二进制的数字
1.2 十进制转换为二进制
将 10100 转换为十进制
1.3 原码、反码、补码
最高位为0,即整数,最高位为1,即负数
- java整数常量默认是int类型,当用二进制定义整数时,其32位是符号位
- 当为long类型时,二进制默认占64位,第64位是符号位
二进制的整数有如下三种形式:
- 原码: 直接将一个数值转换成二进制数,最高位是符号位
- 负数的反码: 是对原码安位取反,只是最高位(符号位)确定为1
- 负数的补码:其反码+1
计算机以二进制补码的形式保存所有的整数。
整数的原码、反码、补码都相同,负数的补码是其反码+1
由-14的补码怎么得到-14的原码? 将上面的箭头倒过来看就行了,先-1,然后除符号位外哥哥位取反
下面有一个例子:知道补码推原码,以后如果告诉我们一个二进制数,我们就认为是补码
二、八进制
0-7 ,满8进1,java中以数字0开头表示
int num3=0127;
2.1 八进制转十进制
2.2 十进制转八进制
三、十六进制
以0x或0X开头表示
int num4 = 0x110A;
- 十六进制是计算机数据的一种表示方法。同我们日常生活中的表示法不一样。
- 它由 0-9,A-F组成,字母不区分大小写。 之前在ps软件中见到的颜色如#ffffff 就是十六进制
- 与10进制的对应关系是:
0-9 对应 0-9 , A-F对应10-15 ; N进制的数可以用0~(N-1)的数表示,超过9的用字母字母A-F
1-1 2-2 3-3 4-4 5-5 6-6 7-7 8-8 9-9 10-A 11-B 12-C 13-D 14-E 15-F 16-10 17 - 11
3.1 十六进制转十进制
将110A转换成十进制