1.进制概念
进制,即进位计数制,是人为定义的带进位计数方法;对于任何进制—X进制意味着每个位置的数字运算都是在X进入一个位置
我们日常生活中有很多进制的例子,比如:
一分钟六十秒,每六十进一,就是六十进制;一天二十四小时,每二十四进一,就是二十四进制;一周七天,每七进一,就是七进制;一年十二个月,每十二进一,就是十二进制;小学数学是十进一,也就是十进制;2.Java进制2.14种
二进制、八进制、十进制、十六进制
2.2进制原因
这些进制的原因: 有二进制是因为计算机底部的电子元件只有两种状态(高电平/低电平,即有电没电),所以计算中的任何数据都是以二进制的形式存在的。二进制早期由电信号开关演变而来,一个整数在内存中也是二进制,但是用一大串1和0做成的值很麻烦。. 有八进制,十六进制的原因是二进制所表示的同值太长,不方便记忆和阅读,而八进制和十六进制则较短,便于阅读和记忆
2.3计算机中存储单位的转换
bit: 每一个二进制都是一个bit 二进制只能由0/1两个数字组成 计算机中最小的信号单元是一个bit 只能 表示两种信号或两种状态 表示范围很小, 可能是高/低电平byte: 字节,一个bit表示范围很小,不够,字母有26个,一个bit只能表示两个,除了字母,还有很多其他符号。 -128~127 256因此,国际标准组织规定了8个bit归类为最小数据单元!一位二进制数可以表示两种状态 12位二进制数可以表示的状态数为2次 4种 0 01 10 11三位二进制数可以表示的状态数是2的3次 8种 00 001 010 011 100 101 110 1118位二进制数可以表示的状态数是2的8次 256种 也就是1byte代表256种状态换算方式8bit=1byte(字节)1kb = 1024byte KB千字节 2的10次方1MB = 1024KB MB兆字节1GB = 1024MB1TB = 1024GB16GB的U盘,制造商转换为字节:16*1000*1000*1000,实际转换:16*1000*1000*1000/1024/1024/1024≈14.9G2.4不同进制的组成标志
jdk7之后支持二进制: 由0,1组成 以0b开头 0b11100021八进制: 由0-7组成 以0开头十进制: 由0-9组成 默认情况下,十进制没有前后缀十六进制: 由0-9,A,B,C,D,E,F(大小写都可以)组成 以0x开头\十进制: 10 值:10二进制: 0b10 值:?八进制: 010 值:十六进制:0x10 值:\代码演示:int a=100;//十进制System.out.println(a); //十进制显示\int b=0b100;/二进制 组成的数字只能出现0/1System.out.println(b);//十进制显示\int c=0100;/八进制System.out.println(c);//十进制显示\int d=0x100;/16进制System.out.println(d);//十进制显示2.5相同进制之间的计算
十进制10+10=20\二进制 b1101+ 0b1101010———- b1110111\八进制 127+ 0765—- 1114\十六进制 x1ab+ 0x99a——- a=10 b=11 c=12 d=13 e=14 f=15 xb452.6进制之间的转换2.6.11任意到十进制的转换
转换规则:任意进制到十进制的转换等于: 这个数字的每个位置系数乘以基数的权
除0以外的任何0次方都是1 。如果3的0次方是1,-1的0次方也是1,0次方毫无意义(数学相关)
任意进制十进制之间的转换 2 8 16如何转10进制?\前提: 十进制数:157系数: 每个数字(157 个位系数为7,十位系数为5,百位系数为1)基数: 几进制基数就是几 (十进制基数10 二进制基数为2)权: 从右到左,从0,编号每个位数,那么这个数字就是这个位置上的数字的权利157210 权\规律: 任意进制到十进制的转换等于: 这个数字的每个位置系数乘以基数的权\十进制:157= (7*10^0) + (5*10^1) + (1*10^2)=7+50+100二进制:0b110=(0*2^0) + (1*2^1) + (1*2^2) =0+2+4=6八进制:0110=(0*8^0) + (1*8^1) + (1*8^2) =0+8+64=72十六进制:0xABC=(C*16^0)+ (B*16^1) + (A*16^2)=12+176+2560=2748—————-a=10 b=11 c=12 d=13 e=14 f=15——————–//验证:int n=0b110;System.out.println(n);//6\int n2=0110;System.out.println(n2);//72\int n2=0xABC;System.out.println(n2);//27482.6.20进制到任意进制的转换
规则:除以基数取余数,直至商为0,余数反转
十进制到任意进制之间的转换 十进制转换为二 8 16进制规则: 除基数取余数外 直到商为0 余数反转\十进制:10";转二进制"2|10 0—-2|5 1—-2|2 0—2|1 1—- 结果:二进制 0b1010\反推 0*2^0+1*2^1+0*2^2+1*2^3=0+2+8=10\";转八进制":8|10 2—-8|1 1—