进制概述:
指进位制,是一种计数方式,也称为进位计数法或位值计数法。
十进制:0,1,2,3,4,5,6,7,8,9
R进制:由0~(R-1)组成,并且每一位上的数据逢R进1
我们的计算机是由逻辑电路组成,逻辑电路通常只要两个状态:开关的接通与断开
这两种状态正好可以用"0"和"1"表示也就是我们要讲解的组成二进制的数字符号
二进制:0,1
虽然计算机喜欢二进制数据,但是用二进制表示数据太长了
为了解决这个问题,八进制和十六进制就来了
八进制:0,1,2,3,4,5,6,7
十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
举例:
二进制:10000000000
八进制:2000
十六进制:400
进制越大:表现形式越短
进制转换:
R进制到10进制的转换
规则:按权展开法(系数*基数的权次幂相加)
系数:每一【位】上的数
基数:R进制,基数就是R
权:从数值的右侧,以0开始编号,对应位上的编号就是该位上的权
十进制到R进制的转换
规则:重复相除法(除基取余,直到商为0,余数反转)
java内置的进制转换
java.lang.integer类中的静态方法
public static String toBinaryString(int i)在基数2中返回整数参数的字符串表示形式为无符号整数
public static String toOctalString(int i)在基数8中返回整数参数的字符串表示形式为无符号整数
public static String toHexString(int i)返回整数参数的字符串表示形式,作为16位中的无符号整数
public static String toString(int i,int radix):返回由第二个参数指定的基数中的第一个参数的字符串表示形式
有符号数据表示法
十进制的数据
+表示正数
-表示负数
计算机中的数据
0表示正数
1表示负数
规定:符号位位于数值第一位
补码表示法:
正数的补码和原码相同
负数的补码等于反码+1
有符号数据表示法
原码表示法:使用0表示正数,1表示负数
规定符号位位于数值第一位,其余位是数值位
反码表示法:
正数的反码和原码相同
负数的反码就是它的原码除符号位外,按位取反(1变0,0变1)
补码表示法:
正数的补码和原码相同
负数的补码等于反码+1
结论:
在计算机中,存储和运算采用的都是补码进行的。计算过程中,符号进位舍弃
数据a对数据b异或两次,结果是a