最近在备考软考的软件设计师考试,学到了关于计算机的数据表示,由于我是半路出家学的Java,导致计算机基础知识很差,在这里记录一下学习感受
为啥要用二进制早期计算机的存储介质是晶体管,晶体管根据电压不同,只能表示2种状态,也就是0和1计算机使用二进制运算更加方便更详细的请参考计算机为啥采用二进制
(相关资料图)
首先,假如你的计算机是32位的机器,数字1在计算机中的表示就是0000000000000000001,假如你是要操作内存,用这么长一串二进制数,是不是感觉有点头大,1位16进制数可以表示4位二进制数,那数字1用16进制来表示就是1H,是不是感觉清爽多了。
进制转换的原理阅读本章之前需要明确的点
进制数的位数从右到左,分别表示从高到低,我们称右边的数为高位,左边的数为低位一位八进制数最多表示三位二进制数,一位十六进制数最多表示4位二进制数十进制转二进制、八进制、十六进制对于10进制转其他进制,一般是使用除法取余数的方式进行计算
例如将数字151转换为二进制
被除数 ÷ 除数 = 商 ... 余数151 ÷ 2 = 75 ... 1 75 ÷ 2 = 37 ... 1 37 ÷ 2 = 18 ... 1 18 ÷ 2 = 9 ... 0 9 ÷ 2 = 4 ... 14 ÷ 2 = 2 ... 0 2 ÷ 2 = 1 ... 0 1 ÷ 2 = 0 ... 1将每一步得到的余数从下往上依次排列,得到 10010111,即151的二进制表示。转为八进制
151 ÷ 8 = 18 ... 718 ÷ 8 = 2 ... 22 ÷ 8 = 0 ... 2151的8进制表示为227转为十六进制
151 ÷ 16 = 9 ... 7 9 ÷ 16 = 0 ... 9因此,151的16进制数为97二进制、八进制、十六进制转十进制对于其他进制转换为10进制,我们一般是采用按权展开法,并且具有公式
例如: 十进制数11的二进制数为1011
使用按权展开法,首先该二进制数有4位,所以n为4,可以得出以下式子
对于八进制,十六进制都是使用该方法转换为10进制
二进制、八进制、十六进制之间互相转换将二进制数转换为八进制数,需要先将二进制数转换为10进制,然后将10进制数转换为八进制
这种转换方式有点麻烦,如果不是很大的数字,可以看下一章,快速转换
快速转换进制的方法快速转换可以通过查表的方式快速转换
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | - | 8 |
| 9 | 1001 | - | 9 |
| 10 | 1010 | - | A |
| 11 | 1011 | - | B |
| 12 | 1100 | - | C |
| 13 | 1101 | - | D |
| 14 | 1110 | - | E |
| 15 | 1111 | - | F |
在这个表格中,每个进制的数字都有对应的二进制、八进制、十进制、十六进制数。例如,十进制数2对应二进制数10,八进制数2和十六进制数2都是用数字2来表示,十六进制数F对应二进制数1111。使用这个表格可以快速地进行不同进制之间的转换。
这种方式对于二进制、八进制、十六进制之间的转换非常有效
例如 将二进制数10101转换为十六进制
首先一个十六进制数最多表示4位进制数从低位取4位二进制数 0101 在16进制下没有发现该数字,将高位的0去掉 得到 101,查到16进制数5继续从低位再取4位,发现只有1了,那它的16进制数就是1从低位到高位组合16进制数 得到 15进制加减法还记得小学我们学的十进制加减法不,即满十进一法.其实对于二进制,八进制,16进制数可分别对应满二进一,满八进一,满16进一.
请参考 16进制加减法
二进制计算符号位溢出问题学习该章首先要明确的点
计算机中的位,表示的是CPU的寻址空间大小计算机中二进制(原码)数字的首位为符号位,0表示正数,1表示负数这里也可以理解为数字表示的最大二进制位数首先假如我们在一个字长为8位的计算机中进行运算 5 + 7
将它们转换为2进制运算 00000101 + 00000111 = 0000110000001100 = 12
那假如是 -5 + -7 呢
转换为二进制运算就是,10000101 + 10000111 = 100001100
100001100 计算出来的二进制数变成了9位,8位下的计算计算机咋能表示9位呢,那把首位的1去掉就变成了00001100 = 12
额,为啥 两个负数相加咋变成正数了,计算机是不是傻了。我们下节继续
下一篇:最后一页
信达固收:从“缩减原则”和“稳健的直觉”看降息的可能,央行,降息,信贷,货币政策,信达固收,市场信心
近日,以色列能源和基础设施部表示,该部门正在推动在吉尔博亚山脉北部地区的4个地点部署4个电池储能系统。这
半套和全套的区别是啥,半套和全套的区别这个很多人还不知道,现在让我们一起来看看吧!1、装修半包和全包区
读特客户端·深圳新闻网2023年5月16日讯(深圳特区报首席记者李丽)“清华同学给我们的印象一直都非常好,
公告称,考虑审核委员会的建议后,其已决议委任上会栢诚会计师事务所有限公司(上会栢诚)为本年公司的新核数
X 关闭
X 关闭