机器数的一些知识点 | 计算机网络

关于机器数运算以及数制的转化

二进制【Binary】以及其他进制的一些 概念 | Tip

计算机运算时采用的数制,基数为2 只有 0 | 1,两个数字符号 
最大数码为基数-1.  二进制数的标志为 B 
相应的,十进制数的标志为 D 【Decimal】 十六进制数的标志为 H 【Hexadecilnal】  八进制数的标志为 O 【Octal】
八进制数可以用 O | Q 两种符号表述。
十六进制有几个点要注意:
在C、C++中规定十六进制必须以 0x 开头,比如 0x10 表示一个十六进制数。通常表示为(4603)H 。
十六进制数中的ABCDEF可以用小写表示,即abcdef | 不区分大小写

十六进制数与计算机网络的相关联系

最新的IPv6采用十六进制表示,IPv4通常采用十进制表示

为什么要有16进制,8进制

原因:并不都是为计算机自身要求而实现的,因为一个较大的数用二进制数表示会显得太长了。

不同进制之间的相互转换

非10 转 10

eg:
(11010)B 转 D : 1*2^4 + 1*2^3 +1*2^1 
其他进制依次类推 权值*数值 的总和

10 转 非10

eg:
(100.1235)D 转B 
整数部分:100 连续使用短除法除以二进制的基数2 ,计算每次除以2的余数,直到不能整除为止,再依次从上往下取每次得到的余数,以小数点开始向左书写对应的余数序列。  |  整数部分除2取余
小数部分: 0.1235连续乘以二进制的基数2,计算每次乘2的整数,然后去掉整数,将剩下的小数部分继续乘2,不断重复,上述步骤,直到小数部分都是0为止,最后,从上往下取每次得到的整数部分,以小数点开始向右书写对应的整数序列。  | 小数部分乘2取整

其他的进制转10按照二进制的方法类推即可。

非10 之间的相互转化

2,8,16进制之间有这样一个规律:***1位八进制数对应3位二进制数,1位16进制对应4位二进制数。因此可以通过这个规律非常简便得进行转换***
eg:(3456.2262) Q 转换为二进制数
方法: 依次把八进制得每一位用3位2进制数表示,最后得到得结果为:(011 100 101 110 . 010 110 010)B  | 整数部分前面得0就可以省略。
eg: (1101011.10111)B 转换为八进制
方法:整数部分从小数点开始向左取数,每3位为1组,到最前面如果不足3位则补0,小数部分则向右取数
即:( 001 101 011 . 101 110 )B 转为(1 5 3 . 5 6)Q
其他依此方法类推即可。

机器数需要了解得一些基础知识点有:

概念

指计算机中参与运算且戴有+ -属性得二进制数。即为有符号位得二进制数。规定最高位为符号位。 0为正,1为负  。所以也称为 符号数值化得二进制数
没有符号位得二进制数为无符号数,既不是机器数,也不参与各种运算。比如信息编码 以及ID编号等等

必要知识点

机器数除去符号位得部分为机器数得真值 |  10000101 的真值为-5 
存储器的单位存储长度为字长,字长就是用来表示一个机器数所用的二进制的位数。
一个机器数必须单独占用一个字长
8位为一个字节
字长越常,CPU的数据处理能力越强 | 每次可以处理更多的数据

原码

原码就是原始编码,就是对应机器数本身所代表的编码形式
原码的优缺:
加减运算规则复杂 | because符号位要单独处理,容易出错
原码中的0有两种编码形式,存在二义性。

补码

*补码产生的意义便是方便机器数的运算*
补码的编码规则:
正原码的补码就是其本身
负原码的补码转换成补码:符号位不变,其余取反,最后最低位加1
补码的优缺:
继承了部分原码特点(同样可以表示正负)
可以把符号位一起运算,符号位不需单独处理
补码中,0只有一种形式,没有二义性  |  -0 表示成原码是10000000,计算补码得100000000,最高位1溢出【机器数只有8位】

反码

反码得编码规则:
正原码的反码就是其本身
负原码的反码就是其补码最低位-1
相比补码,反码好像没什么用,只是原补之间转换的一个中间态。
当然,在IPv4地址的子网掩码计算时必须用到反码

阶码

通俗的讲,在10进制中的科学计数法中,阶码就是10上面的指数,在机器数中,阶码就是2上面的指数。
对于N=S*2^P,S为尾数,p为阶码,2为基数。

移码–偏移的编码

为什么要有移码? |  方便机器数的大小比较 | 用于浮点数中阶码的修正
移码的计算公式:X移=X+2^n,n为X原码的二进制真值位数
移码与阶码的转化关系:X移=X阶+2^n。
补码与移码的关系即为符号位互反的关系  |  所以在***计算移码的时候,可以先计算补码,再将符号位取反即可得到移码***

定点数

定点整数

小数点固定在有效数值部分最低位之后的定点数,若X=X0X1X2X3X5X6X7,X0为符号位 ,其余7位表示真值

定点小数

小数点位置固定在符号位之后,有小数最高位之前的定点数

同时包含整数和小数部分的定点数

为了确定其小数点的位置,在一个字长的存储位中小数点位置必须提前记录下来。固定了一个字长表示的机器数的大小精度。

浮点数

浮点数的表示方法 | 相当于十进制中的科学计数法

S  |  E  |  M :S表示符号位,E为阶码,M为尾数

浮点数的IEEE 754标准

标准的定义:IEEE 754将浮点分为单精度和双精度,分别为32和64位
IEEE 754标准中,符号位不变,阶码为固定8位,且用移码表示,即在原阶码基础上加上2的7次方,即127(1111111)B 
尾数为32-1-8,即23位(不足补零)

需要掌握

给定一个机器数,转化为IEEE 754标准 | 公式:S(1.M)*2^E-偏移
浮点数表示形式的转换

二进制数的运算

二进制的算术运算

+ - * / 为逢2进1.

补码的加减

【X补】+【Y补】=【X+Y】补
【X-Y】补=【X】补+【-Y】补
负数补码的求法:将该负数的正数原码全部位取反+1.
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值