黑马程序员技术交流社区

标题: 【广州校区】【原创】java基础中关于进制的问题 [打印本页]

作者: yuhaohong    时间: 2018-3-15 13:07
标题: 【广州校区】【原创】java基础中关于进制的问题
一:进制概述和二,八,十六进制
A:什么是进制
     进制:就是进位制,是人们规定的一种进位方法。对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一
     例如一周有七天,七进制,一年有十二个月,十二进制
B:十进制的由来
     十进制的由来是因为人类有十个手指
C:二进制的由来
     其实二进制来源与中国,请看史料记载
     18世纪德国数理哲学大师莱布尼兹从他的传教士朋友鲍威特寄给他的拉丁文译本《易经》中,读到了八卦的组成结构,惊奇地发现其基本素数(0)(1),即《易经》的阴爻yao- -和__阳爻,其进位制就是二进制,并认为这是世界上数学进制中最先进的。20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制。它不但证明了莱布尼兹的原理是正确的,同时也证明了《易经》数理学是很了不起的
D:八进制的由来
     任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦
     所以就想把一大串缩短点,将二进制中的三位用一位表示。这三位可以取到的最大值就是7.超过7就进位了,这就是八进制
E:十六进制的由来
     但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,四个二进制位最大是15,这就是十六进制
F:不同进制表现同一个数据的形式特点
     进制越大,表现形式越短

二:不同进制数据的表现形式
1 字节等于 8 bit  相当8个二进制开关 ( 00000000 ~ 11111111 )
A:二进制的数据表现形式
     由0,1组成。以0b(b可以大写也可以小写)开头 (JDK1.7版本可以表示二进制了)
B:八进制的数据表现形式
     由0,1,…7组成。以0开头
C:十进制的数据表现形式
     由0,1,…9组成。整数默认是十进制的
D:十六进制的数据表现形式
     由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x/0X开头
E:案例演示
     输出不同进制表现100的数据
     System.out.println(   );
     0b100--------->4
     0100---------->64
     100----------->100
     0x100--------->256

三:快速的进制转换法
A:8421码及特点
     8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
B:通过8421码的方式进行二进制和十进制的相互转换
C:二进制到八进制的简易方式
D:二进制到十六进制的简易方式

四:原码反码补码
A:为什么要学习原码反码补码?
     后面要学习强制类型转换,如果不知道有原反补会看不懂结果
B:有符号数据表示法的几种方式
     原码
         就是二进制定点表示法,即最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小
         通过一个字节,也就是8个二进制位表示+7和-7
         0(符号位)    0000111        ( 0 0000111 )
         1(符号位)    0000111        ( 1 0000111 )
     反码
         正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外
     补码
         正数的补码与其原码相同;负数的补码是在其反码的末位加1





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2