计算机中的数据是采用二进制表示的。计算机中的数据按照基本用途可以分为两类:数值型数据和非数值数据。数值型数据表示具体的数量,有正负大小之分。非数值数据主要包括字符、声音、图像等,这类数据在计算机中存储和处理前需要以特定的编码方式转换为二进制表示形式。
数制及其转换
1.数制
计算机中常用的记数制是二进制、八进制、十六进制。
2.数制转换
(1)十进制与二进制、八进制、十六进制相互转换
算法:将十进制整数部分除以r取余,将十进制小数部分乘以r取整,将两部分合并。下面举例说明算法。
例:将十进制数(347.625)10转化为二进制数。
解:步骤一:转换整数部分
Mod(347/2)=1
Mod(173/2)=1
Mod(86/2)=0
Mod(43/2)=1
Mod(21/2)=1
Mod(10/2)=0
Mod(5/2)=1
Mod(2/2)=0
1
(347)10=(101011011)2
步骤二:将小数部分转化
0.625*2=1.25 1
0.25*2=0.5 0
0.5*2=1 1
(0.625)10 =(101)2
得:(347.625)10 =(101011011.101)2
(2)最基本的二进制、八进制、十进制和十六进制的对应关系。表1-1是基本的对应关系。
(3)二进制的运算法则
① 二进制加法的进位法则是“逢二进一”。 0+0=0 1+0=1 0+1=1 1+1=0(进位)
② 二进制减法的进位法则是“借一为二”。 0–0=0 1–0=1 1–1=0 0–1=1(借位)
③ 二进制乘法规则。 0*0=0 1*0=0 0*1=0 1*1=1
④ 二进制除法即是乘法的逆运算,类似十进制除法。
机器数和码制
各种数据在计算机中表示的形式称为机器数,其特点是采用二进制数。计算机中表示数值数据时,为了便于运算,带符号数采用原码、反码、补码和移码等编码方式,这种编码方式称为码制。
正数的原码、反码、补码是相同的,负数则不同。
- 原码
将最高位用作符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值的表示形式。
例如:
+1的原码0000 0001,-1的原码是1000 0001
- 反码
负数的反码是在原码基础上除符号位外按位取反。
例如:
-1的反码是1111 1110
- 补码
负数的补码是其反码加1,这个加1就是“补”。
例如,-1的补码是1111 1110+1=1111 1111
对一个补码表示的数,要计算其原码,只要对它再次求补,即可得到。
- 移码
移码是对补码符号位取反得到的一种编码,它只用于表示浮点数的解码,所以只用于正数。
例如,-1的补码是0111 1111
浮点数的运算
数学中表示一个很大的数,常用科学技术法:
N=M*R^e
其中M称为尾数,e是指数,R为基数
浮点数就是用这种方法来表示大范围的数。浮点数表示的精度取决于尾数的宽度,范围取决于基数的大小和指数的宽度。
浮点数的运算主要有三个步骤:对阶、尾数计数、结果格式化。
这些都是我们了解计算机原理的基础,计算机的世界就是0和1的世界。两个简单的字符,却创造了科技发达的世界,我们的大脑真的很神奇,赶紧一起创新吧!