A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 新生heima 中级黑马   /  2015-8-10 12:09  /  645 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

进制:是一种计数的方式,是数字的表示形式。
常见的进制:二进制,八进制,十进制,十六进制

特殊进制表示形式:
二进制:0b0101101(以0b或0B开头)
八进制:045(以0开头)
十六进制:以0x或0X开头,0x2df。

各种进制的输出方式:
八进制:%o
十进制:%d
十六进制:%x

定义数值:
二进制:0b 0000 0000 0000 0000 0000 0000 0000 1101     (13,计算机中int型占32位,定义的时候不加空格)
八进制:015(13)
十六进制:0xd(13)

进制转换:
进制转换的要素:1)数位 2)基数 3)位权
数位:指数码在数中所处的位置
基数:指进制数
位权:是值该数值位表示的固定值,可以计算出来(比如第三位是1,则二进制1*2^(3-1)=4,十进制1*10^(3-1)=100)
数码*基数^(数位-1)=这个位表示的数

二进制和十进制互转:
10----->2
整数部分除二取余法,小数部分,乘二取整法,高位补0,将得到的余数倒叙就可以得到二进制了
二进制和十六进制互转:
2----->16
整数部分从右向左,每4位合并以为,组成16进制数,小数部分,从左往右,4合1
16---->2
1位拆4位,整数部分从右到左,小数部分从左至右

机器数和真值:
机器数:一个数在计算机中的二进制表示形式,都是带符号位的,最高位0表示整数,最高位1表示负数
真值:二进制(除去符号位)转换成的十进制后的数值,因为机器数的第一位是符号位所以,机器数的形式值就不是真正的值

原码,反码,补码:
数据在计算机的内部是以补码的形式存储的

对于正数:原码=补码=反码,是这个数的二进制表示
原码:数字的二进制表示形式,第一位是符号位
反码:除符号位外,其他位取反
补码:负数的补码是在原码的基础上,除符号位不变,其他各位取反,末位+1(就是反码+1)

小结:
对于引入补码的理解:计算机中减法运算要转换成加法来求值,因为减法的逻辑相对加法过于复杂。
因此引入了补码的概念,来用加法完成减法运算。(这里补码只针对负数)
这个思想最好理解的方向是从圆的角度来想,90度-30度=60度,在一个圆盘里,它所指的方向和90度+(360度-30度)一致。
因为圆的角度在增加过程中,它的指向是循环的,这与确定位数的二进制数表示的数值情况一致,数从0000 0000到1111 1111再到0000 0000,在这种基础下,补角的思想转化成了补码。

补码,我理解为“补数”,即在同样数位下的,两个数数值位相加为2^n的数。

拿8位数为例,1000 0001(原码)     表示-1,补码为1111 1111,当我们除去符号位时可以看出,这两个数分别为000 0001和111 1111,数值位相对于128=2^8互补。
有了这样的基础,在做减法运算时,减法转换成了对数值互补数的加法(不管符号位)。比如000 0101(5)-000 0001(1)=
000 0100(4)等价于000 0101(5)+111 1111(127)=1000 0100(132)从后7位看000 0100(4)等于4,这样,减法成功转换成加法。

7 个回复

倒序浏览
小结不错,赞一个
回复 使用道具 举报
恩,感觉十进制转2进制,先把10进制写成16进制,再通过16进制转2进制,这样比较简单……
回复 使用道具 举报
哦明白了!~
回复 使用道具 举报
原来如此
回复 使用道具 举报
加油啊   写的不错
回复 使用道具 举报
aidan 中级黑马 2015-8-16 20:06:30
7#
给赞一个
回复 使用道具 举报
不错  继续总结吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马