序言
前段时间看到couresa上面有南京大学袁春风老师的操做系统课程,因而复习了一下操做系统相关知识,打算把不容易理解的点记录一下以便之后的温习回顾操作系统
- 定点数和浮点数概念
首先介绍下最初不容易理解的误区就是理解字面意思,有种错觉是浮点数就是带小数点的数。这是新手容易误解的地方,定点数和浮点数的关键点在于小数点的位置下面介绍概念。
定点数---一个数小数点的位置不会改变也就是是固定的数,好比现实生活中十进制的数字12.34,这样表示的四位数小数点是在有效位的第二位后面,这种就是定点小数,小数点在固定位置。十进制表示的1234则是小数点在最后一位的后面,这种是定点整数。0.1234这种小数点在有效位以前的是定点纯小数。
定点数运算---若是是定点整数运算,2*3相似这种,在计算机中是容易计算的。可是在进制运算中比较麻烦的是定点小数的运算。好比12.34乘以5.6在进制运算中是很是麻烦的,由于计算机没法记录一个小数的小数点的位置。为了解决这个问题就出现了浮点数计数法。
浮点数---任何现实世界中的实数均可以用一种公式表示 X = (-1)^s MR^e ,-1的s次方是s决定正负,M是一个二进制定点小数是实数X的尾数部分。e是一个二进制的定点整数,是X的指数。R是基数,能够是二、4和16等。计算机中只要肯定s、m、e就能够肯定X的值,这就是浮点数,相似于十进制中的科学表示法。好比十进制中的-5.0 转成二进制表示的话 -101.0,用上述公式转化即为 (-1)^1乘1.01乘2^2 。
浮点数运算 关于浮点数的运算举例来说,至关于十进制中1.235.6转化为 12310^-2乘以5610^-1。先计算12356,再计算10^-2 * 10^-1。若是这个例子能明白的话,浮点数的计算方式也大概清楚怎么回事了。因此浮点数的计算解决了定点小数运算时关于小数点位置没法被记录的问题。而浮点数的运算部位又能够用定点数代替,因此计算机中全部的运算均可以用浮点数解决。
- 上述内容部分知识出自《深刻理解计算机系统》和 www.couresa.org 。