软考之路

目录

一、计算机硬件基础(流水线-吞吐率)

原码、反码、补码、移码

二、程序语言和语言处理程序(前后中缀表达式)

乔姆斯基文法


一、计算机硬件基础(流水线-吞吐率)

流水线有取值、分析和执行三个阶段,就像是工厂每个人分工不同,每个人都有自己的唯一枯燥工作,提高工厂生产的效率,但是也加大的人工。

流水线公式:执行一条指令时间+ (指令条数-1)*流水线周期

为什么要减去一条指令呢?因为可能在三个阶段中时间不同,例如取值为5,分析为2,执行也为5,这样进行加工时取值完后进行分析,分析比较快,到达最后一次指令会缩短3,其他指令会空闲。

小试牛刀:例题

某指令流水线由5段组成,各段所需时间如图,连续输入10条指令时的吞吐率为?

解析:这是执行一条指令,总时间为8;共执行10条,所以是10-1;根据上图一条指令中最高的周期数是3;

所以连续10条指令吞吐率为:8+(10-1)*3=35

 

原码、反码、补码、移码

                            正数的反码、补码均为本身,移码在正数补码的基础上符号位取反

负数的原码、反码、补码、移码如下
负数的原码:是正数原码符号位取反
负数的反码:负数原码基础上符号位不变,其他位取反
负数的补码:负数反码的基础上进一位
负数的移码:负数补码的基础上符号位取反

 

 

 

 

 

 原码反码补码移码
0000 00000000 00000000 00001000 0000
1000 00001111 1111

0000 0000

1000 0000

 

 

 

 

二、程序语言和语言处理程序(前后中缀表达式)

计算中缀表达式”可以称得上是一个特别经典的关于栈的算法题,几乎在所有数据结构教材中都会涉及,而且很多公司面试或者笔试的时候都会把这道题作为一个考察点。可以说,这是一道必须要掌握的算法题。

通常会给定一个中缀表达式,让我们转化为前缀或后缀表达式,在转换过程中画出两列栈,一列存数字一列存符号。

重点:存符号的一列栈两个()相遇要抵消掉,把符号放到数字栈中。

前缀表达式:将给定中缀表达式从右往左入栈,得到表达式后要出栈,也就是把得到的表达式反过来。

后缀表达式:将给定中缀表达式从左往右入栈不用出栈,得到的是后缀表达式。

小试牛刀:公式(a+b)*(a-b)

一、转换为前缀表达式(数字1-13为步骤):

数字栈符号栈
2.b1.)
4.ba3.)-
6.ba-5.要存(但已有),与之抵消,在将 - 存到数字栈
ba-7.*
9.ba-b8.*)
11.ba-ba10.*)+
13.ba-ba+*12.要存(但已有),与之抵消,再将*+存到数字栈

 

 

 

 

 

 

 

 

最后得到的表达式为ba-ba+*,但不要忘了要在进行出栈,也就是把得到的表达式倒叙拿出,最后前缀表达式为:*+ab-ab

二、转换为后缀表达式

从左往右以此入栈,得到结果不用出栈,最后得到的结果为:ab+ab-*  大家根据上方的前缀表达式练习一下,是否得到的是这个结果。

 

乔姆斯基文法

G=(Vn,Vt,P,S)

Vn非终结符,Vt终结符,P产生式,S起始符。

类型 说明(α∈(VN∪VT)+,β∈(VN∪VT)*  )
0型文法α→β

α中不包含ε

1型文法|α|<=|β|

α的长度必须小于等于β的长度

2型文法α→βα∈Vn, β∈(VN∪VT)*
3型文法α→β

左线性文法 终结符在左,或β为ε:A→Ba ,A→ε

右线性文法 终结符在右,或β为ε:A→aB ,A→ε

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值