计算机系统基础知识

目录

🍊进制的转换

1.十进制转换至非十进制

1.十进制转换为二进制

2.十进制转换为八进制 

3.十进制转十六进制

2.非十进制转换为十进制

1.二进制转十进制

2.八进制转十进制

3.十六进制转十进制

3.非十进制转换为非十进制

1.二进制转换成八、十六进制

2.八、十六进制转换成二进制

🍇原码、反码、补码

1)原码表示法

2)反码表示法 

3)补码表示法 

4)移码表示法 

注意点

🍓定点数、浮点数 

🍈逻辑运算 

🍑常用字符编码

BCD码

ASCII码  

校验码

1.奇偶校验码

2.海明码

3.循环冗余校验码 


 🥇个人主页:个人主页

 🥈系列专栏:【软考】程序员

🍊进制的转换

四种进位计数制

①十进制:具有十个不同的数码,基数为10,各位的位权为10i。进位规则是“逢十进一”。

②二进制:具有两个不同的数码0、1,基数为2,各位的位权为2i。进位规则是:“逢二进一” ③八进制:具有八个不同的数码,基数为8,各位的位权是8i。进位规则是“逢八进一”。

④十六进制:具有16个不同的数码,基数为16。各位的位权是16i。进位规则是“逢十六进一”。

1.十进制转换至非十进制

1.十进制转换为二进制

整数部分

将十进制数除以2,得到商和余,然后将商继续除以2,得余,以此类推,直到商小于2,然后将每一步的余数倒序的拼接起来,就得到了正确的二进制。设有十进制数:249,计算过程如下:

小数部分

将十进制数乘以2,然后将整数部分取出来当结果,小数部分继续乘以2,以此类推,直到达到精度或小数变为0时停止,然后将每一步的整数正序拼接就得到了二进制小数。设有十进制数:0.390625,计算过程如下:

2.十进制转换为八进制 

整数部分

计算过程与二进制类似,只不过是基数不同。以250为例。

所以十进制250 转二进制为372

小数部分 

设有十进制数:0.53125,计算过程如下

 故十进制0.53125 的八进制为0.42

3.十进制转十六进制

与上面2个一样的步骤,就不举例子了

2.非十进制转换为十进制

对于整数部分,非十进制数的位数设为n,那么整数的最小位(最右边)的权值为0,最高位(最左边)的权值为n-1。

对于小数部分,非十进制小数的位数设为n,那么小数最高位(最左边)的权值为-1,最低位(最右边)的权值为-n。

对应的,对于混合的数字分别结算后拼接在一起即可。

1.二进制转十进制

拿二进制数10010110举例

(计算方法是从右向左依次乘上2的n次幂,n从零开始,^符号表示次幂)

1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2^1+0*2^0=150

2.八进制转十进制

拿八进制数226举例(由右向左依次乘以8的n次幂,n从零开始)

2*8^2+2*8^1+6*8^0=150

3.十六进制转十进制

与上面2个一样的步骤,就不举例子了

3.非十进制转换为非十进制

1.二进制转换成八、十六进制

二进制转换成八:整数从右向左三位并一位     小数从左向右三位并一位

二进制转换成十六进制:整数从右向左四位并一位,小数从左向右四位并一位

2.八、十六进制转换成二进制

🍇原码、反码、补码

1)原码表示法

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.

比如如果是8位二进制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:

[1111 1111 , 0111 1111]==>[-127 , 127]

2)反码表示法 

反码的表示方法是: 正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

3)补码表示法 

补码的表示方法是:正数的补码就是其本身

 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1) [+1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

正数:原码 = 反码 = 补码

4)移码表示法 

补码的数值部分不变,符号取反,即得移码

已知x=-1100101 ,求[x]补和[x]移。

x=-1100101         

[x]补=10011011 

[x]移=00011011

注意点

  • 补码对于数字0,在补码表示中,0有唯一的编码
  • 即[+0]补=0000 0000 , [-0]补=0000 0000。换句话说,数值0采用补码形式表示,机器位数全为0
  • 8位字长的表示补码(1000 0000)最小整数-128

🍓定点数、浮点数 

在计算机中,小数点以及位置都是隐含的;

有两种隐含方式:定点和浮点

定点数:小数点的位置是固定不变的     

  • 定点小数:小数点隐含固定在最高数据位的左边,整数位则用于表示符号位,用于表示纯小数     
  • 定点整数:小数点隐含固定在最低数据位之后,最高位还是为符号位,用于表示纯整数

浮点数:小数点的位置由阶码规定的,因此是浮动的。   

在计算机中通常把浮点数N分成阶码和尾数两部分组成。   

 N=尾数*基数^阶码(尾数是一个规格化的纯小数)

(11100.101)2=(0.11100101)*2^101

IEEE754标准 格式规范     

阶符 阶码  尾符  尾数

🍈逻辑运算 

与运算:与运算符用“∧”或“·”表示。与运算的运算规则是:仅当两个参加运算的逻辑值都为“1”时,与的结果才为“1”,否则为“0”。

运算规则如下: 0·0 = 0,0·1 = 1·0 = 0,1·1 = 1

或运算:或运算符用“∨”或“+“表示。运算规则是:仅当两个参加运算的逻辑值都为“0”时,或的结果才为“0”,否则为“1”。 运算规则如下:

0 + 0 = 0,0 + 1 = 1 + 0 = 1,1 + 1 = 1

非运算:非运算符用“~”或在逻辑值的上方加一横线“ ”表示。 运算规则是:对逻辑值取反。

运算规则是:~0 = 1,~1 = 0

异或运算:常用的逻辑运算还有“异或”运算,又称为半加运算,其运算符号常用XOR或⊕表示。设A和B为两个逻辑变量,当且仅当A、B的值不同时,A“异或”B为真。A“异或”B的运算可由前三种基本运算表示。

运算规则如下: 0 ⊕ 0 = 0,0 ⊕ 1 = 1 ⊕  0 = 1,1 ⊕ 1 = 0 (同为0,异为1)

🍑常用字符编码

BCD码

是指每位十进制数用4位二进制数编码表示。选用0000~1001来表示0~9这10个数字。这种编码方法比较直观、简单,对于多位数,只需将它的每一位数字按表1-4中所列的对应关系用BCD码直接列出即可。

ASCII码  

又称“美国标准信息交换代码”  用7位二进制数表示一个字符;实际存储时,每个字符用一个字节存储,最高位设置为0

最多可以表示128个字符,编码为0~127,包括10个数字符号、52个大小写英文字母、32个标点符号和运算符以及34个控制符。

典型ASCII码值:A为65,a为97,0为48

校验码

1.奇偶校验码

一种通过增加冗余位使得码字中"1"的个数恒为奇数或偶数的编码方法,它是一种检错码。

  •  奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。     

  • 数被校验的信息中“1”的个数,如果“1”的个数是奇数个,在信息位最前面(默认)或者最后面(根据题目要求)添加“0”;如果“1”的个数是偶数个,在信息位最前面(默认)或者最后面(根据题目要求)添加“1”;     

  • 偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数   
  •  数被校验的信息中“1”的个数,如果“1”的个数是偶数个,在信息位最前面(默认)或者最后面(根据题目要求)添加“0”;如果“1”的个数是奇数个,在信息位最前面(默认)或者最后面(根据题目要求)添加“1”;

只能检错,不能纠错

2.海明码

海明码,小名汉明码(Hamming Code),以发明者理查德·卫斯里·汉明的名字命名。海明码具有检错和纠错双功能,它基于奇偶校验原理,只能检查出某一位错码的位置。当有多位错码时,它就不适用了。

可以检错,也能纠错

3.循环冗余校验码 

循环冗余校验码简称CRC码,是目前使用非常广泛的数据校验方式.它不仅能校验传递过来的数据正确性,还能筛查出哪一位出现了错误.它的局限性是只能校验一位数据发生跳变,在现实世界当中数据发生跳变很大很大的概率只有一位发生变化,因此CRC码也拥有很大的发挥舞台.

只能检错,不能纠错

  • 115
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 97
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值