计算机科学与导论 第一章绪论和第二章数字系统

文章预览:

  • 1. 计算机软硬件常识(第一章)
    • 1. 冯诺依曼
    • 2. 计算机历史
    • 3. 计算机的诞生
  • 2. 数字系统(第二章)
    • 1. 位置化的数字系统
        • 1. 十进制系统
        • 2. 二进制系统
        • 3. 八进制系统
        • 4. 十六进制系统
    • 2. 转换
        • 1. 其他进制转换到十进制的转换
        • 2. 十进制到其他进制的转换
        • 3. 数码的数量
        • 4. 二进制——十六进制转换
        • 5. 二进制——八进制转换
        • 6. 八进制—十六进制转换
    • 3. 数码的问题

1. 计算机软硬件常识(第一章)

1. 冯诺依曼

图灵在1937年首次提出了一个通用计算机设备的设想,他设想所有的计算都能在一中特殊的机器上执行,这就是所说的图灵机

冯诺依曼模型:基于图灵机建造的计算机都在存储中储存数据,冯诺依曼指出,鉴于程序和数据在逻辑上时相同的,因此程序也能存储在计算机存储器中。

4个子系统:基于冯诺依曼模型建造的计算机分为4个子系统:存储器算术逻辑单元控制逻辑单元输入输出单元

算术逻辑单元(ALU)是用来进行计算和逻辑运算的地方。
控制单元式对存储器,算术逻辑单元,输入、输出等子系统进行控制操作的单元
输入子系统负责从计算机外部接受输入数据和程序
输出子系统负责将计算机的处理结果输出到外部

冯诺依曼模型要求程序必须存储在内存当中。

2. 计算机历史

机械计算机器(1930年以前)
电子计算机的诞生(1930~1950)
第一台通用的,完全电子计算机由约翰·莫克利 (John Mauchly)和约瑟夫·雷伯恩 (J. Presper Eckert)发明,这台计算机被称为ENIAC 他是1946年完成设计的,曾有误传ENIAC是第一台计算机,实际上,真正的第一台电子计算机是阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,简称ABC计算机)。事实上ABC计算机不可编程,且非图灵完全,只能进行线性方程组的计算。它的价值是确定了一些现代计算机设计思想,如采用二进制、可重用的存储器等。所以说ENIAC是第一台通用计算机

第一台冯氏思想的计算机于1950年在宾夕法西亚大学诞生,命名为EDVAC

3. 计算机的诞生

第一代计算机 体积庞大 以电子管(真空管)为电子开关。

第二代计算机使用晶体管代替电子管

第三代计算机(1965~1975)中小规模集成电路(晶体管,导线以及其他部件做在一块单芯片上)的发明更加减少了计算机的成本和大小

第四代计算机出现了微型计算机,第一桌面计算器出现在1975年,电子工业的发展允许计算机系统做在单块电路板上。这一时代还出现了计算机网络

第五代计算机
这个还未终止的时代始于1985年,这个时代见证了掌上计算机和台式计算机的诞生,多媒体的应用和虚拟现实现象。

2. 数字系统(第二章)

1. 位置化的数字系统

在位置化的数字系统中,数字符号所占据的位置决定了其表示的值。在该系统中数字这样表示:
± ( S k − 1 S k − 2 . . . S 2 S 1 S 0 . S − 1 S − 2 . . S − k ) b \pm (S_{k-1}S_{k-2}...S_2S_1S_0.S_{-1}S_{-2}..S_{-k})_b ±(Sk1Sk2...S2S1S0.S1S2..Sk)b

它的值是 n = ± S k − 1 ∗ b k − 1 + S k − 2 ∗ b k − 2 . . . + S 2 ∗ b 2 + S 1 ∗ b 1 + S 0 ∗ b 0 . S − 1 ∗ b − 1 + S − 2 ∗ b − 2 + . . . S − k ∗ b − k n=\pm S_{k-1}*b^{k-1}+S_{k-2}*b^{k-2}...+S_2*b^2+S_1*b^1+S_0*b^0.S_{-1}*b^{-1}+S_{-2}*b^{-2}+...S_{-k}*b^{-k} n=±Sk1bk1+Sk2bk2...+S2b2+S1b1+S0b0.S1b1+S2b2+...Skbk

其中S是一套符号集,b是为底(或基础),他等于S符号集中的符号总数,b的非负数幂与数字的整数部分有关,而负数幂与该数字的小数部分有关, ± \pm ±符号表示该数字可正可负。

1. 十进制系统

b=10,S={0,1,2,3,4,5,6,7,8,9} 用数码k表示十进制的最大值为 N = 1 0 K − 1 N=10^K-1 N=10K1

2. 二进制系统

b=2,S={0,1} 用数码k表示二进制的最大值为 N = 2 K − 1 N=2^K-1 N=2K1

3. 八进制系统

b=8,S={0,1,2,3,4,5,6,7} 用数码k表示八进制的最大值为 N = 8 K − 1 N=8^K-1 N=8K1

4. 十六进制系统

b=16,S={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} 用数码k表示十六进制的最大值为 N = 1 6 K − 1 N=16^K-1 N=16K1

2. 转换

1. 其他进制转换到十进制的转换

这种转换简单而迅速,说白了就是按权展开求和得到十进制数。

2. 十进制到其他进制的转换

我们将十进制转换到其等值的其他进制,需要俩个过程,一个用于整数部分,另一个用于小数部分。‘
整数部分的转换用连除,下面使用了UML图

在这里插入图片描述
转换小数部分

小数部分可使用连乘法,取整数。

请添加图片描述

3. 数码的数量

说白了就是几位数,我们看看把一个十进制整数换算为其他常用进制会变成多少位。
我们推一下 想想原理 设十进制整数为N 那我们要的为其他进制下为x位刚好能表示这个数那么肯定有 b x − 1 < = N < = b x − 1 b^{x-1}<=N<=b^{x}-1 bx1<=N<=bx1 俩边同时取对数 可得出不等式 x < = l o g b N + 1 x<=log_b^N+1 x<=logbN+1 x必定是整数,所以
x = ⌊ l o g b N ⌋ + 1 x=⌊ log_b^N⌋+1 x=logbN+1 书上写的公式不对,不是上限而应该是下限+1,举例整数2换成2进制为10,那是为2位,如果按书上公式因为1.很明显不对。

4. 二进制——十六进制转换

我们能将数字从二进制转换到十六进制,反之亦然,这是因为在这俩个底之间存在关系,二进制的4位刚好是十六进制的1位,4个二进制转换成一个16进制数即可,不足补零。

5. 二进制——八进制转换

和十六进制与二进制转换很像,只不过要变成3个二进制换成一个八进制数,反之亦然,不足补零

6. 八进制—十六进制转换

这有俩种办法,一种是通过十进制为中介,另一种是通过二进制为中介。

3. 数码的问题

前面我们小试牛刀,试过把一个整数N换成其他进制数要几位,现在我们更深层次想一下,如果我们知道源系统数码的最大数量,就能知道我们在目标系统中所需要的最小数量。例如在源系统中我们知道使用6个十进制数码,那么在目标系统中我们就知道要使用二进制数码的最少数量。通常假设在 b 1 b_1 b1为底的系统中使用了k个数码,在源系统中显示的最大数为 b 1 k − 1 b_1^k-1 b1k1,
假设我们在目标系统中需要x位数码(也就是我们要求的),底为 b 2 b_2 b2这个条件已知。那么有不等式为 b 2 x − 1 > = b 1 k − 1 b_2^x-1>=b_1^k-1 b2x1>=b1k1
利用同时取对数并利用换底公式 能得到不等式为 x > = k ∗ l o g b 2 b 1 x>=k*log_{b2}^{b1} x>=klogb2b1 x = ⌈ k ∗ l o g b 2 b 1 ⌉ = ⌈ k ∗ l o g 10 b 1 / l o g 10 b 2 ⌉ x=⌈k*log_{b2}^{b1}⌉=⌈k*log_{10}^{b1}/log_{10}^{b2}⌉ x=klogb2b1=klog10b1/log10b2

公式例子
找出2进制数码的最小数,用于存储一个最大6个数码的十进制数整数。
k=6, b 1 b_1 b1=10 , b 2 = 2 b_2=2 b2=2 求x
带入公式:
x = ⌈ 6 ∗ l o g 2 10 ⌉ = ⌈ 6 ∗ l o g 10 10 / l o g 10 2 ⌉ = 20 x=⌈6*log_{2}^{10}⌉=⌈6*log_{10}^{10}/log_{10}^{2}⌉=20 x=6log210=6log1010/log102=20
储存一个最大6个数码的十进制整数需要2进制数码20位才可以。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2780702.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

新年福利:《YOLO目标检测》送书活动

博主简介 AI小怪兽&#xff0c;YOLO骨灰级玩家&#xff0c;1&#xff09;YOLOv5、v7、v8优化创新&#xff0c;轻松涨点和模型轻量化&#xff1b;2&#xff09;目标检测、语义分割、OCR、分类等技术孵化&#xff0c;赋能智能制造&#xff0c;工业项目落地经验丰富&#xff1b; …

最全面的Docker安装部署,配置镜像加速

安装Docker 卸载旧版 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 配置Docker的yum仓库 首先…

【Git】上传本地文件到Git(以Windows环境为例)

Git 的下载参考&#xff1a;Git 安装及配置 一、Git 上传的整体流程 1、工作区 > 本地仓库 将本地文件上传到Git&#xff0c;需要先上传到本地仓库&#xff0c;然后再上传到远程仓库。要上传文件到本地仓库&#xff0c;不是直接拷贝进去的&#xff0c;而是需要通过命令一步…

【数据结构】哈希表的开散列和闭散列模拟

哈希思想 在顺序和树状结构中&#xff0c;元素的存储与其存储位置之间是没有对应关系&#xff0c;因此在查找一个元素时&#xff0c;必须要经过多次的比较。 顺序查找的时间复杂度为0(N)&#xff0c;树的查找时间复杂度为log(N)。 我们最希望的搜索方式&#xff1a;通过元素…

STM32 新建寄存器版本MDK工程简要步骤

新建工程文件夹 新建一个工程根目录文件夹&#xff0c;并在该文件夹里新建D/M/O/P/U文件夹。 Drivers&#xff1a;存放与硬件相关的驱动层文件Middlewares&#xff1a;存放正点原子提供的中间层组件文件和第三方中间层文件Output&#xff1a;存放工程编译输出文件Projects&am…

linux系统下vscode portable版本的python环境搭建003:venv

这里写自定义目录标题 python安装方案一. 使用源码安装&#xff08;有[构建工具](https://blog.csdn.net/ResumeProject/article/details/136095629)的情况下&#xff09;方案二.使用系统包管理器 虚拟环境安装TESTCG 本文目的&#xff1a;希望在获得一个新的系统之后&#xff…

Vue核心基础4:绑定样式、条件渲染、列表渲染

1 绑定样式 【代码】 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>绑定样式</title><s…

FL Studio版本升级-FL Studio怎么升级-FL Studio升级方案

已经是新年2024年了&#xff0c;但是但是依然有很多朋友还在用FL Studio12又或者FL Studio20&#xff0c;今天这篇文章教大家如何升级FL Studio21 FL Studio 21是Image Line公司开发的音乐编曲软件&#xff0c;除了软件以外&#xff0c;我们还提供了FL Studio的升级服务&#…

C++11中的简化声明

auto 用于自动类型推断&#xff0c;显示定义变量&#xff1a; typeid typeid推导出来的是字符串&#xff0c;只能看不能用&#xff0c;通过打印来查看变量的类型&#xff0c;用法如上。 decltype 同样是用来自动推导类型&#xff0c;与auto的区别是&#xff0c;auto在定义时必…

MySQL篇----第十四篇

系列文章目录 文章目录 系列文章目录前言一、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?二、锁的优化策略三、索引的底层实现原理和优化四、什么情况下设置了索引但无法使用前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽…

PKI - 借助Nginx实现_客户端使用自签证书供服务端验证

文章目录 Pre概述在 Nginx 中实现客户端使用自签名证书供服务器验证1. 生成客户端密钥对2. 生成自签名客户端证书3. 配置 Nginx4. 重启 Nginx 修5. 验证 在浏览器中安装客户端证书以便进行访问 Pre PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证 PKI - 数…

线性代数的本质——1 向量

向量是线性代数中最为基础的概念。 何为向量&#xff1f; 从物理上看&#xff0c; 向量就是既有大小又有方向的量&#xff0c;只要这两者一定&#xff0c;就可以在空间中随便移动。 从计算机应用的角度看&#xff0c;向量和列表很接近&#xff0c;可以用来描述某对象的几个不同…

人力资源智能化管理项目(day05:角色管理)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/humanResourceIntelligentManagementProject 搭建页面结构 分页组件&#xff1a;设置layout&#xff0c;表示需要显示的内容&#xff0c;用逗号分隔&#xff0c;布局元素会依次显示。prev表示上一页&#xff0c;next为…

HP Pavilion Laptop 15-cs3xxx原装出厂Win10.20H1系统

惠普笔记本HP Pavilion - 15-cs3030tx原厂Windows10系统镜像下载 链接&#xff1a;https://pan.baidu.com/s/1LmdJoN7F3BGvt49ovq-eww?pwdzgmt 提取码&#xff1a;zgmt 适用型号&#xff1a; 15-cs3001tx&#xff0c;15-cs3030tx&#xff0c;15-cs3031tx&#xff0c;15-cs…

数据结构:并查集讲解

并查集 1.并查集原理2.并查集实现3.并查集应用4.并查集的路径压缩 1.并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中…

寒假作业2024.2.11

请使用递归实现n! #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <unistd.h> int fun(int n) {if (n0) {return 1;} else {return n*fun(n-1);} } int main(int argc, const char *argv[]) {int n…

Vue核心基础3:计算属性和监视属性

1 计算属性 这边以姓名案例&#xff0c;来介绍计算属性 <body><div id"root"><!-- 姓&#xff1a;<input type"text" v-model:value"firstName"><br>名&#xff1a;<input type"text" v-model:value&…

《CSS 简易速速上手小册》第10章:未来的 CSS(2024 最新版)

文章目录 10.1 CSS 的新特性和趋势10.1.1 基础知识10.1.2 重点案例&#xff1a;使用 CSS Grid 创建响应式图库10.1.3 拓展案例 1&#xff1a;利用 CSS 变量实现主题切换10.1.4 拓展案例 2&#xff1a;使用 lab() 颜色和 layer 规则优化样式 10.2 CSS Houdini&#xff1a;魔法般…

C++进阶(十四)智能指针

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、为什么需要智能指针&#xff1f;二、内存泄漏1、 什么是内存泄漏&#xff0c;内存泄漏的危…

STM32 7-8

目录 ADC AD单通道 AD多通道 DMA DMA转运数据 DMAAD多通道 ADC AD单通道 AD.c #include "stm32f10x.h" // Device header/*** brief 初始化AD所需要的所有设备* param 无* retval 无*/ void AD_Init(void) {RCC_APB2PeriphClockCmd(RCC_AP…