Skip to content

运算基础

冯诺依曼体系机:程序存储、程序控制

进制特点

  1. 二进制
    1. 特点:逢二进一 用 0 和 1 表示
  2. 八进制
    1. 特点:逢八进一 用 0 1 2 3 4 5 6 7 表示
  3. 十进制
    1. 特点:逢十进一 用 0 1 2 3 4 5 6 7 8 9 表示
  4. 十六进制
    1. 特点:逢十六进一 用 0 1 2 3 4 5 6 7 8 9 ,10-15用 A B C D E F 分别对应 11、12、13、14、15 表示
    2. 十六进制数是字母开头,须在前面加一个“0” 如: 0ABH

1、十进制转二进制

8421万能法

asm
A           1 0 1 0         
		  8 4 2 1

8+2=10,所以A就是10

2、二进制转八进制

421万能法

八进制57.6转二进制

asm
					1 0 1   1 1 1   1 1 0  B            
					4 2 1   4 2 1   4 2 1

3、10进制转16进制

/frac18=0.125/frac116=0.0625

250转16进制 250除16= 15 ....... 10 就是 FAH

1000转16进制 1000除16=62........8,62在除16=3....4 就是 3E8H

4、小数转16进制×16取整

5、十六进制转10进制(按权展开从左到右顺序)

83转10进制:

8×16一次方+3×16的0次方=131

6、10进制转二进制

1、除余法

100转2进制

asm
			2 ÷ 100 = 500
               2 ÷ 50 = 250
               2 ÷ 25 = 121
               2 ÷ 12 = 60
               2 ÷ 6 = 30
               2 ÷ 3 = 11
               2 ÷ 1 = 01

所有100转2进制是 1100100

2、10进制-3E8H

10进制数 - 3E8H = 16进制在转二进制

10进制正数写0 ,负数写1

例如:

​ +1000 写 1000 - 3E8H

​ -1000 写 10000 - 3E8H(多加了个0)

7、二进制转16进制

asm
例:
	1 1 1 1 		转16进制
	8 4 2 1  8*1+4*1+2*1+1*1 = F		十六进制就是  F

与或异或非运算

  1. 与运算(and):有0出0,全1出1

    asm
    例:
    	1011 0001
    	1101 1000
    	---------		与运算
    	1001 0000
  2. 或运算(or):有1出1,全0出0

    asm
    例:
    	1011 0001
    	1101 1000
    	---------		或运算
    	1111 1001
  3. 异或运算(xor):相同为0,不同为1

    asm
    例:
    	1011	0001
    	1101 1000
    	---------		异或运算
    	0110 1001
  4. 非运算(单目运算符 not~):0就是1,1就是0,取反

    asm
    例:
    	1101 1000
    	---------
    	0010 0111

位运算(移动位,左移×2,右移除2)

asm
0000 0001		1 
0000 0010		2
0000 0100		4
0000 1000		8

左移:(<<) 汇编指令叫 shl(逻辑左移)

asm
0000 0001 	所有二进制位全部左移若干位,高位就丢弃了,低位补0
0000 0010

右移:(>>) 汇编指令叫 shr(逻辑右移)

asm
0000 0001		所有二进制全部右移若干位,低位就丢弃了,高位需要补0,1(符号位决定补0还是1)
0000 0000

位运算实现加减乘除

4+5=?

asm
# 计算机是怎么操作的!
0000 0100
0000 0101
--------- (加法,计算机是不会直接加的)

# 第一步, 异或,如果不考虑进位,异或就可以出结果
0000 0100
0000 0101
---------
0000 0001
# 第二步,与运算(判断进位!如果与运算结果为0,没有进位)
0000 0100
0000 0101
---------
0000 0100

# 第三步,将与运算的结果,左移一位, 0000 1000 进位的结果

# 第四步,异或!
0000 0001
0000 1000
---------
0000 1001

#第五步,与运算(判断进位!如果与运算结果为0,没有进位)
0000 0001
0000 1000
---------
0000 0000

# 所以最终的结果就是与运算为0的结果的上一个异或运算

4-5=?

asm
# 计算机是怎么操作的!
4+(-5)

0000 0100
0000 0101  
--------- (减法,计算机是不会直接加的)
1111 1111

0000 0100
1111 1011
---------	(异或,如果不考虑进位,异或就可以出结果)
1111 1111

0000 0100
1111 1011
--------- 与(判断进位!如果与运算结果为0,没有进位)
0000 0000

最终结果 
     二进制 1111 1111 
     16进制 ff 
     10进制 -1

乘:x*y,就是y个x相加,还是加法

除:x/y,本质就是减法,就是x能减去多少个y

结论:计算机只会做加法

BCD码(就是转二进制编码)

特点

  1. BCD码有十个不同字符,逢十进一,是十进制数
  2. 每一位十进制数用4位或8位二进制编码表示,是二进制编码的十进制数
  3. 直观
image-20230913174105491

例:求十进制数876的BCD码

876.7=(1000 0111 0110.0111)BCD

876 = 36CH = 1101101100B

注意:BCD码 十进制码 二进制

除BCD编码外,还有其他二进制编码的十进制数。如余3码、余3循环码等。

BCD的二种方式

  1. 组合BCD(压缩BCD)4位表1位
    1. 0100 1000
  2. 非组合BCD(8位表1位)
    1. 0000 0010 1000 0011

字符编码

可表示128种字符的7位基本ASCII码和可表示256种字符的8位扩充ASCII码。

字符可分为:显示字符和控制字符

表格重点

数字(0-9)ASCII码30H-39H
大写字母(A-Z)ASCII码41H-5AH
小写字母(a-z)ASCII码61H-7AH
换行ASCII码0AH
回车ASCII码0DH
image-20230913180051160

带符号数的表示方法

  1. 机器数与真值

    1. 机器数
      1. 计算机中数的表示形式,以二进制的形式表示,位数通常为8的倍数 。一般数的最高位作符号位,“0”表示“+”, “1”表示“-”。
      2. 一字节为8位二进制数
    2. 真值
      1. 机器数所代表的实际数值。可用二进制表示,也可用其他进制表示。
  2. 计算机对有符号数的三种表示方法

    1. 原码
      1. 正数符号位为0,负数为1,数值保持不变
        1. +12 = 0000 1100 B
        2. -12 = 1000 1100 B
      2. 原码16位数的表示范围
        1. -32767~ +32767
      3. 原码8位数的表示范围
        1. -127~+127
    2. 反码
      1. 定义:
        1. 正数的反码和原码表示相同
        2. 负数反码符号位为1,数值位为原码数值各位取反,原码基础上,除符号位外,按位取反,正数不变。
      2. 反码的表示范围:
        1. +127~ -127
      3. 特点:
        1. 0有两种表示方法
        2. 8位:-127~ +127 16位:-32767~ +32767
        3. 符号位为0,正数,后面7/15位是其数值
        4. 符号位为1,负数,后面7/15位按位取反
    3. 补码
      1. 负数的补码,在反码的补码上+1.
      2. 运算
        1. 补码是原码、补码,除符号位按位取反+1
        2. 补码求原码-1取反
        3. 模-1负数1 = 补码
        4. 8位:-128~ +127 16位:-32768~ +32767 , 80H就是 -128
        5. 补码的快速算法
          1. 8位:
            1. 100h - 22h = DEH (DEH就是22H的补码)
          2. 16位:
            1. 10000h - 3E8H=FC18H(FC18H就是22H的补码)
        6. 注意:
          1. 正数原码、反码、补码相同
          2. 负数在计算机是以补码的方式存储(补码就是反码+1)

计算机系统的组成及其工作原理

计算机系统由软件系统和硬件系统组成 软件系统分为应用软件和系统软件

  1. 冯●诺依曼体系机:

    5个组成部分:运算器、存储器、控制器、输入/输出设备

  2. CPU由:运算器、控制器、寄存器、主控制器CPU

  3. 计算机的工作原理:取指令、分析指令、执行指令

image-20230918205946367

微处理器只是一个中央处理器(CPU)由算术逻辑部件(ALU),累加器和通用寄存器、程序计数器、时序和控制逻辑部件、内部总线等组成。微处理器不能构成独立工作的系统,也不能独立执行程序。

微型计算机由CPU,存储器、输入/输出接口电路和系统总线组成,具有计算机功能,能独立执行程序,但不能显示或输出,仍不能正产工作。

以微型计算机为主体,配上外部输入/输出设备及系统软件就构成了微型计算机系统,这样就可以正常工作了。

结论(了解):

由此可知,计算机的基本工作原理如下:

(1) 计算机的自动计算(或自动处理)过程就是执行一段预先编制好的计算程序的过程。

(2) 计算程序是指令的有序集合,因此,执行计算程序的过程实际上是逐条执行指令的过程。

(3) 指令的逐条执行是由微机或计算机硬件实现的,可归结为取指令、分析指令、执行指令。如此重复操作,直至执行完计算程序中的全部指令,便可获得最终结果。

微机系统主要技术指标

常用名词术语

  1. 位( bit 或 b )——最小的信息单位,二进制的一位数。

    ​ 例如:1101,含有 4 bit;一个“bit”只能表示 1种状态 (“0” 或 “1”);n 个“bit” 就能表示2n 种状态。

  2. 字节( byte 或 B )——是计算机的最小存储单元

    ​ 1 byte = 8 bit , 从00000000~11111111;

  3. 可以表示256 个状态(数值);

  4. 一般数字、字母、普通符号用一个字节就可表示,但汉字、特殊符号等则需两个或多个字节来表示。

  5. 字(word 或 w)——是计算机进行数据交换、加工、存储的基本运算单位。一个字由一个或若干个字节构成,通常将组成一个字的位数叫作该字的字长。

    ​ 1字=2Byte=16bit

  6. DB:字节定义

  7. 字长:每个字所包含的二进制位数

    32k=2的五次方•2的10次方=2的15次方=8000H

​ =2的15次方×1+2的14次方×0+2的13次方×0....=1000000000000000(有多少次方,写多少个0)

主要技术指标

  1. 机器字长:是指计算机内部ALU能够一次同时处理的二进制数的位数。

  2. 字长越长,运算精度越高。通常字长都是字节(8位二进制数)的整数倍,如8位、16位、32位、64位。

  3. 主频:是计算机的时钟频率

  4. 内存容量:计算机可存储信息的多少,通常以自己为计量单位。一般用KB、MB、GB、TB、PB为单位

    ​ 1KB=1024B

asm
	 1MB=1024KB 

	 1GB=1024MB

	容量越大储存的程序和数据越多,处理能力也就越强。