位置记数法可以实现二进制,八进制,十六进制向十进制的转换
举个例子比如说八进制124 就是4*8的0次方+2*8的1次方+1*8的二次方:
再讲一下怎么实现从十进制,八进制,十六进制向二进制的转换:将十进制的35转化成二进制
大家都可能知道计算机是用二进制来进行数据的存贮,但是历史上曾经是用过不同形式的二进制代码:原码,反码。如今我们的计算机系统使用的是补码。下面一一对这三种形式进行介绍
这里先给大家提一个问题:就是计算机可以保存一个无限大的整数吗?
答案显然是不行的因为计算机开辟的能进行数据存储的空间就是有限的,举个例子在C++中一个整型数据开辟的内存就是4的字节,32位的存贮空间。当你输入一个数比如说是2转成二进制就为10
那前面还有30位怎么办呢。这是计算机就会在10的左边补上30个0进行存储。
整数的表示可以分为无符号数和有符号数,有符号数又可以分为原码,反码,和补码。
你能存储的有符号数数值大小范围由开辟的存储位数决定,假设开辟的为N的位数的空间,那么为0到2的N次方减1。
原码就是在二进制编码的前面加上一个0表示+号,加上一个1的话就是负号
八位的存储下 7的二进制编码为00000111 最左边的0代表的就是+号代表是正数。
这种原码不好的地方就是他不适合人类对二进制代码进行直接的加减运算的需要。
反码呢 举个例子:八位的存储下正 7的二进制编码为00000111,负7的二进制就将正7中的0和1互换。则负7的表示方法为11111000。
最后呢是我们如今计算机系统的常用的补码
真值如何转化成为补码呢:举个例子将-40转化成补码:一·先不管符号将40转化为二进制为00101000
再将符号添上去:从右往左数数到第一个“1”后1000保留不变它左边的00101全部0和1互换。就可以了-7则为11011000。
补码怎么转换成真值呢:先确定符号第一个数是0的话则为+,第一个数是1的话则为-号;
再将1000保留,其左边的数0和1互换,再将二进制数转化为十进制。
为什么如今我们用补码呢就是因为可以直观的进行计算。
如00000010(2)+
11111111(-1)
100000001 为(1)