Autosar 系列教程:小柴带你学 AutoSar 总目录

# 小柴冲刺软考中级嵌入式系统设计师系列一、计算机系统基础知识(3)算数运算和逻辑运算

# 一、算数运算

# 1、二进制算术运算规则

加法减法乘法
0+0=00-0=00*0=0
1+0=11-0=11*0=0
0+1=10-1=1 (借位)0*1=0
1+1=0 (进位)1-1=01*1=1

# 2、机器数的加减法运算

只设置加法器,将减法运算转换为加法运算来实现。

补码加法的运算法则

  • 和的补码等于补码求和
  • [X+Y] 补 = [X] 补 + [Y] 补

补码减法的方法

  • 差的补码等于被减数的补码加上减数取负后的补码
  • [X-Y] 补 = [X] 补 + [-Y] 补

由 [X] 补求 [-X] 补的方法

  • [X] 补的各位取反(包括符号位),末尾加 1

# 3、溢出及判定

一旦运算结果超出所能表示的范围就会发生溢出。

0 1000001 + 0 1000011 = 1 0000100【显然正数 + 正数 = 负数是错误的❌】

溢出检测机制

  • 双符号位判决法
  • 进位判决法
  • 根据运算结果的符号位和进位标志判别
  • 根据运算前后的符号位进行判别

# 4、机器数的乘除运算

乘除法运算实现

  • 纯软件方案
  • 左移位、右移位逻辑电路实现
  • 乘法器

# 5、浮点运算

①浮点加减运算

设有浮点数 X=M2^i , Y=N2^j , 求 X+Y 和 X-Y

  • 对阶
  • 求尾数和 / 差
  • 结果规格化并判溢出
  • 舍入
    • 截断法
    • 末位恒 1 法
    • 0 舍 1 入法
  • 溢出判别

②浮点乘除运算

阶码相加减、尾数相乘除。

# 二、逻辑运算

逻辑运算由 与 或 非 组成,其他运算都可以由这三种运算组成。

# 1、常用逻辑运算

# ①与

符号: AND、∩、∧、⋅

ABA·B
000
010
100
111

# ②或

符号: OR、∪、∨、+

ABA+B
000
011
101
111

# ③非

符号: Ā来表示对 A 的取反(啊这个符号好难找,后面就用!来代替了,毕竟代码里也是这样的)

!1 = 0

!0 = 1

# ④异或

符号: XOR、⊕

相同为 0,不同为 1

A⊕B = (!A ) * B + A * (!B)

# 常用的逻辑公式

名称公式公式理解
交换律A + B = B + A<br />A * B = B * A交换一下无伤大雅
重叠律A + A = A<br />A * A = A是你是你还是你
结合律A + (B + C) = (A + B) + C<br />A * (B * C) = (A * B) * C先后顺序也都符合加减乘除的运算呢
互补律!A + A = 1<br />!A * A = 0!A 和 A 本身总有一个 0 和 1 因此 <br />0+1 = 1<br />0 * 1 = 0<br /> 很好理解
吸收律A + !AB = A + B前面有 A + !A = 1 因此这里就相当于看 B 了 <br />(1) 遍历 < br />B = 1 则 A + !AB = A + !A<br />B = 0 则 A + !AB = A<br />A = 1 则 A + !AB = A<br />A = 0 则 A + !AB = B<br /> 总结一下:A + B<br />(2) 公式推导 < br />A + !AB<br />= A (B+!B) + !AB<br />= AB + !AB + A!B<br />= B + A!B<br /> 即 A + !AB = B + A!B 注意这是在同一个等式中,所以 A 和 B 对结果的影响是同等重要的,那么 < br />A = 0 则 = B<br />A = 1 则 = 1<br />B = 0 则 = A<br />B = 1 则 = 1<br /> 好啦是不是就这样完结
分配律A * ( B + C ) = A * B + A * C<br />A + ( B * C ) = ( A + B) * ( A + C )展开 <br />= A + A * B + A * C + B * C <br />= A * ( 1 + B + C) + B * C <br />= A + B * C
0-1 律0 + A = A<br />1 + A = 1<br />0 * A = 0<br />1 * A = A懒得解释
反演律!(A + B) = !A * !B<br />!(A * B) = !A + !B①<br />---A---\ <br /> -o-----<br />---B---/<br />②<br />---A-o---B-o---<br /> 很有意思哦,把并联关系转为串联 < br />①只要有一个 1 输出就为 0<br />②同上,仔细想想很有意思
对合律!!A = A懒得 + 1
其他公式AB + A!B = A<br />A + AB = A<br />AB + !AC + BC = AB + !AC<br />!(A ^ B) = !A ^ B = A ^ !BA (B + !B)<br />A (1 + B)<br />ABC+AB!C+!ABC+!A!BC+ABC+!ABC = AB (C+!C)+!AC (B+!B)<br /> 异或 AB 相同为 0 不同为 1,那么不同的异或取反为 1 时原为 0,那将其中一个取反就已经改变了原本的 A

从前上学的时候就有个习惯

老师在上面讲他的,我在下面推公式

然后就从小学到高中当了 9 年数学课代表,作业没写过,成绩也不算特别好哈哈哈

# 逻辑表达式及其化简

总而言之就是通过上述的公式来化简哒

试一下吧

--1------2------3------4-----5----6--
!(ABC)+!(AB)C+!A(BC)+A!(BC)+A!BC+ABC
-----12---------36----------45--
= !(AB)(!C+C)+(!A+A)BC + A!B(C+!C)
---------------整理------------------
= !(AB) + A!B + BC
= (!A+A)!B + BC
= !B + BC
= !B + C

完事啦

这样那么长的逻辑都被化简啦!电路和逻辑都能简单不少呢

最近着实有些忙啦!

随缘更新 ing

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

flechazo 微信支付

微信支付

flechazo 支付宝

支付宝

flechazo 贝宝

贝宝