6目录

计算机组成原理:

数据库部分:

leetcode每日一题:

Java学习:


计算机组成原理:

数据表示

1. 基本概念

  • 真值:+0101,-0100
  • 机器数: [x]原=0101

2. 几种机器数

  • 原码:x = -0101,[x]原 = 1101
  • 反码:x = -0101,[x]反 = 1010
  • 补码:x = -0101,[x]补 = 1011
  • 移码:x = -0101,[x]移 = 2^n + x = 0011

PS:这里说说对补码与移码自己的理解。补码是为了化减法为加法方便计算机设计运算,移码是为了方便比较大小,用在浮点数的阶码中。
补码——任何一个有模的系统中,减法都可以通过加其补码来表示。最简单的例子就是以12为模的钟表,比如现在是3点,那么-5个小时就等于+7个小时,都是10点。这里7就是5的补码。
移码——数据对应关系一次挪动一下位置,使得看起来小的数真值也小。比如原本0000表示0,现在表示-128,然后0001表示-127,一直到1111表示+127,这样就方便比较了。

3. 定点数与浮点数

定点数:小数点固定 x.xxxxxx,表示范围受限,忘掉它吧

浮点数:数的范围和精度分别表示。

        一般格式 :EEEE......EMMM.......M,E部分是阶码(数的范围i),M部分是尾数(数的精度)。缺点:阶码和尾数位数不固定,太灵活了 (可能有误差

IEEE754格式:跟我背下来----

32位的是(单精度):1位符号位S + 8位偏指数E + 23位有效尾数M,偏移值为127。

64位的是(双精度):1位符号位S + 11位偏指数E + 52位有效尾数M,偏移值为1023。

真值就是(32位为例) N = (-1)^S * 2^(E-127) * 1.M

浮点数的特殊情况

E=0,M=0:机器零

E=255,M=0:无穷大,对应于x/0

E=255,M!=0:非数值NaN,对应0/0

ps:附上一份IEEE754文档:https://files.cnblogs.com/files/flashsun/7542008-2008.pdf

4. 数据校验

基本原理:增加冗余码

码距:合法编码之间不同二进制位数的最小值

码距与检错、纠错能力

  • 码距 d>=e+1:检查e个错误
  • 码距 d>=2t+1:纠正t个错误
  • 码距 d>=e+t+1:同时检查e个错误,并纠正t个错误。(e>=t)

PS:这里说下我的理解,增加码距就是增加非法编码的数量,看到非法编码就算检查出错误了,而非法编码距离哪个合法编码比较进就认为正确的应该是什么(简单理解,可参考下面的图),也就是可以纠正错误。这里看到过一个好的几何理解图,仔细品味下:

举个例子:比如一共有8位,码距为1则检查不出任何错误,因为所有编码都是合法编码。如果码距为2,那合法编码应该像 00000000,00000011,00001100,00001111这样,那如果出现00000001这样的非法编码就出错了,可检查一位错,但如果两位同时错了,则有可能又跳到另一个合法编码上了,就检查不出2位错。

那如果码距是3,那合法编码应该像 00000000,00000111,00111000,00111111 这样,那如果出现一位错 00000001,或者两位错00000011,都是非法编码,都能检查出错误,并且此时可以纠正00000001为00000000,纠正00000011为00000111。但是三位同时错就检查不出了。

常见校验策略:奇偶校验,CRC校验,海明校验

ps:海明编码最强视频演示教程:https://www.youtube.com/watch?

该部分转载于:【重学计算机】计算机组成原理 - 闪客sun - 博客园

数据库部分:

--针对bookshop数据库:--1、 创建一个视图cust_view,该视图只含收件人姓张的客户信息。(10分)create view cust_view
as
select *
from customer
where receiver like '张%'--2、 利用cust_view视图分别添加一条姓张的和不姓张的顾客数据。(注意:分别查看customer表和该视图的结果。)(15分)insert into cust_view values('ab','张强',1,'')
insert into cust_view values('abc','不姓张',1,'')--3、 创建一个视图cust_view1,该视图只含收件人姓张的客户信息,带with check option 子句。(10分)create view cust_view1
as
select *
from customer
where receiver like '张%'
with check option--4、 利用cust_view1视图分别添加一条姓张的和不姓张的顾客数据。(注意:分别查看customer表和该视图的结果。)(15分)insert into cust_view1 values('abcd','张强',1,'')
insert into cust_view1 values('abccde','不姓张',1,'')--5、 通过视图cust_view删除所有姓张的收件人且名字为2个汉字的客户数据。(10分)delete
from cust_view
where receiver like '张_'--6、 通过视图cust_view修改表内某一客户的姓名(请给出以下几种情况进行测试:1、customer表中不存在的一个客户;2、customer表中存在且没有销售记录的一个客户;3、customer表中存在且有销售记录的一个客户。)(15分)update cust_view
set cust_name = '张'
where cust_name = 'x'update cust_view
set cust_name = '张'
where cust_name = 'zhangtao'update cust_view
set cust_name = '张'
where cust_name = 'zbowen'--7、 从基本表employee和sales,创建一个视图sales_view,该视图包含业务员的编号、姓名、销售总金额。(10分)create view sales_view(业务员编号 , 姓名 , 销售总额)
as
select emp_no , emp_name , sum(total_amt)
from employee , sales
where employee.emp_no = sales.sale_id
group by emp_no , emp_name--8、 将上述视图中E0017业务员的销售总金额改为6000元。能成功吗?如果失败说明原因。(10分)update sales_view
set 销售总额 = 6000
where 业务员编号 = 'E0017'
--不能成功 , 修改视图实际上是修改基本表 , 但是基本表里面没有销售总金额这一类
--对视图或函数 'sales_view' 的更新或插入失败,因其包含派生域或常量域。--9、 删除上述所有已经创建的视图。(5分)drop view cust_view , cust_view1 , sales_view

leetcode每日一题:

次元门

一道怎么看 , 怎么像的 dp 动态规划 题. 但是关键是怎么进行状态转移.

        我需要去救公主 , 而且我又不能死 , 还要花费最小的血量. 在每一个坐标 , 我都希望「从出发点到当前点的路径和」尽可能大(使得我后面能够花费的血量最少 , 才能使我救到公主),而「从出发点到当前点所需的最小初始值」尽可能小. 一般的 dp 很难满足两种状态量的转移. 所以公主不救了 , 摆烂.

        这时公主大喊一声: 傻x , 等着 , 我去找你. 逆向思维的话 就只需要得到「存活在该点 , 并能救到公主需要的最少的血量」, 为什么不需要「从出发点的最大路径和」呢? 因为逆向走到该点就已经满足了我能够用当前血量救到公主(简而言之就是 , 这就是我从该点到公主所在位置的最小权值 , 所以我根本不需要该点的最大路径让花费的血量最少 , 因为我已经是花费最少的情况了). 此外 , 因为我的血量至少为1才能存活 . 所以 , 就存在状态转移 -- dp[i][j] = max(1 , min(dp[i + 1][j] , dp[i][j + 1]) - dungeon[i][j]) .取 max(1) 的原因是: 当我需要的血量是负数时 , 也就是我捡了很多的血量 , 使得我在该节点只需要负的血量就能使我到达公主的位置 .这显然是不合理的 , 因为我们最少的血量都要为1.

        于是 , 公主成功找到了我.

class Solution {
public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int n = dungeon.size() , m = dungeon[0].size();vector<vector<int>>dp(n + 1 , vector<int>(m + 1 , INT_MAX));dp[n][m - 1] = 1 , dp[n - 1][m] = 1;for(int i = n - 1;i >= 0;i --){for(int j = m - 1;j >= 0;j --){dp[i][j] = max(1 , min(dp[i][j + 1] , dp[i + 1][j]) - dungeon[i][j]);}}return dp[0][0];}
};

Java学习:

ArrayList 数组:

1.声明ArrayList数组
ArrayList<auto> arrayList = new ArrayList<auto>();
//auto : Boolean Byte Short Integer Long Float Double Character2.添加元素
arrayList.add(int , auto);
//int -> 位置 , auto -> 数据3.将一个数组中的全部数据添加到另一个里面
arrayList.addAll(int , ArrayList);
//int -> 位置 , ArrayList -> 相同类型数组4.数组清空
arrayList.clear();5.拷贝
ArrayList<String> cloneSites = (ArrayList<String>)sites.clone();
//类c++vector<int>b = a;6.判断数组中是否存在x
boolean bo = arrayList.contains(x);7.删除符合条件的数组元素
sites.removeIf(e -> e.contains("Tao"));
numbers.removeIf(e -> (e % 2) == 0);;8.赋值
auto array = arrayList.get(n) <=> (c ++)auto array = array[n];9.长度,是否为空
arraylist.size() , arraylist.isEmpty();10.查找第一个匹配字符 , 查找最后一个匹配字符
arraylist.indexOf(auto) , arraylist.lastindexOf(auto);11.删除某等值元素
arraylist.remove(auto);12.保留重叠部分
arraylist.retainAll(sites);13.修改元素
arraylist.set(int , auto);
//int 表示下标

我有一壶酒 可以慰风尘.Day Six -- 林深不见鹿.

“21 天好习惯”第一期-6相关推荐

  1. “21天好习惯“第一期--4

    "21天好习惯"-第四天 每天记录一点点 计算机的诞生与发展 冯·诺依曼体系 计算机系统作为一个能够自动地处理信息的智能化工具,必须解决好两个最基本的问题:①信息如何表示才能方便地 ...

  2. “21天好习惯” 第一期 - 18

    今天进一步探究昨天学习的strcmp()函数:         昨天学习strcmp()函数时提到了,当两个字符串相同时,输出0,不相同时,输出非零,那么当两个字符串不同时,具体会输出什么非零值呢?于 ...

  3. “21天好习惯”第一期——16

    <计算机组成原理> 第一章 概论 1.1.2 存储程序工作方式 存储程序是计算机的核心内容,表明了计算机的工作方式,包含3个要点:事先编写程序,存储程序,自动.连续地执行程序. (1)根据 ...

  4. “21天好习惯”第一期- 4 简单的壁纸爬虫

    有时候我们不想让电脑桌面过于单调,于是琢磨着能不能让电脑每天自动获取网站上的图片然后更换为壁纸,这就需要一个壁纸爬虫了,这里以3G壁纸为例. 首先,还是喜闻乐见的导入模块,在这个爬虫中,我们需要以下模 ...

  5. “21天好习惯”第一期——21

    <计算机组成原理> 3.5.2 MIPS32架构CPU基本的组成部件 3. 单周期控制系统设计 (2)ALU控制单元      ALU控制单元接收两种输入:主控单元输出的m位aluop和指 ...

  6. “21天好习惯“第一期——2

    道友们好,今天是学习的第二天,经过一天的学习我又了解到了很多有关C语言的知识,我也会和大家继续分享我的学习笔记,以及在学习中遇到的问题. 请大家看看下面这个程序: 今天的学习就到此为止,希望大家可以向 ...

  7. “21天好习惯”第一期——2

    今天学习的内容是3.3.2--算术逻辑单元. 继续昨天的学习的内容进一步学习了ALU: ALU的外部特性与功能: ALU的标志位: ALU的EDA设计模式: 学习中遇到的问题主要是ALU的EDA设计模 ...

  8. “21天好习惯”第一期-第10天

    今天学会了一个猜数的程序,这个程序可以让计算机随机生成一个100以内的数,然后我们人来猜这个数是什么. #include<stdio.h> #include<stdlib.h> ...

  9. “21天好习惯“ 第九期—9:京东倒计时,淘宝倒计时

    "21天好习惯" 第九期 - 9 一.学习规划 1.计算机组成图谱绘画(应为知识导图)(10月25) 2.网络工程师备考(11月6) 3.信息知识竞赛(10月31) 二.所遇问题 ...

  10. “21天养成好习惯”第一期——21

    1.今天是关于数组 概念在上图里面同时还有诸多注意事项 1.数组的下标均以0开始: 2.数组在初始化的时候,数组内元素的个数不能大于声明的数组长度: 3.如果采用第一种初始化方式,元素个数小于数组的长 ...

最新文章

  1. WMI技术介绍和应用——查询时间信息
  2. 获取bing带swim的网址列表
  3. [IS-IS] IS-IS路由协议的基本知识及配置
  4. android 之四大组件的Activity详解
  5. linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...
  6. 移动端HTML响应式布局之神奇的pt(自测99.99%与设计图一致)
  7. 百度近五年最年轻高管团队出炉,能否“翻盘”成功?
  8. Kafka+Log4j实现日志集中管理
  9. 在线二进制转文本工具
  10. AS星尘粒子系统 初识2
  11. win98 支持html5,win98 ghost ghost在WIN98怎么使用
  12. Proxmark3初学:用PM3克隆M1普通门禁卡方法
  13. 西门子TIA PORTAL (博途/STEP 7 )安装反复要求重新启动 STEP7 Basic的许可无法彻底完成
  14. html设置div大小位置不变,div大小 div固定大小设置
  15. html英文字母大小,英语字母书写笔顺 英语 , 26个英文字母大小写规范书写技巧...
  16. 云虚拟机和普通虚拟机有什么区别
  17. 智能搬运机器人系列之使用旭日X3派实现机器人防脱轨功能
  18. magento 赠品_免费赠品:10个高质量的夏季刻字
  19. SSH密码暴力破解及防御实战
  20. Android 从WebServer 获取PDF转图片

热门文章

  1. sd卡格式化后还能恢复吗?恢复小技巧分享!
  2. 控制台输入类java.util.Scanner
  3. 基于单片机的电子琴设计
  4. 【单片机】一文彻底搞懂单片机程序烧录
  5. 学神经网络应该看看哪些书,神经网络相关书籍
  6. ubuntu下载神器---xdm
  7. 炒币的诱惑、安稳的生活
  8. ROS2编程基础课程--库
  9. 我的NVIDIA开发者之旅——NVIDIA云原生技术
  10. c语言printf显示变量,零基础学C语言 笔记一 变量 printf