python电脑结构、ARP协议、单位转换、字节bytes、字符串与字节关系等知识总结

摘要:
目录一、计算机的五个组成部分II、程序运行程序III、ARP协议IV、单元转换V、数据类型:字节VI、字符串与字节I的关系计算机之父冯·诺依曼提出了计算机的五大组成部分:输入设备、输出设备、存储器、运算单元和控制器。人们通过大脑思考,计算机通过CPU进行操作和控制。

目录

一、计算机五大部件

二、程序运行的过程

三、ARP协议

四、单位转换

五、数据类型:字节bytes

六、字符串和字节的关系

一.计算机五大部件

电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备、输出设备、存储器、运算器和控制器。

python电脑结构、ARP协议、单位转换、字节bytes、字符串与字节关系等知识总结第1张

我们把键盘和鼠标叫输入设备。

输入设备: 向电脑输入数据和信息的设备。除了键盘。除了键盘鼠标,其他输入设备还包括触摸板、麦克风、摄像头,游戏手柄、扫描仪等。

显示器用来向我们展示画面,显示内容,音箱则播放音乐给我们听,我们管他们叫输出设备。

输出设备: 将电脑中的信息输出给用户的设备。常用的输入设备有:显示器、音箱、打印机、投影仪等。

主板:连接所有其他设备的设备,是其他设备的载体,主板主要是为CPU、内存、显卡、硬盘等提供平台,相当于人体的躯干,关联着各个器官。

CPU:中央处理单元(Cntral Pocessing Uit)的缩写,也叫处理器,是计算机的运算核心和控制核心。人靠大脑思考,电脑靠CPU来运算、控制。让电脑的各个部件顺利工作,起到协调和控制作用。

硬盘:存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。也被人们称之为“数据仓库”。

内存:1. 负责硬盘等硬件上的数据与CPU之间数据交换处理;2. 缓存系统中的临时数据。3. 断电后数据丢失。

显卡:显示器想要呈现画面,显卡是关键。简单来说,就是负责在显示屏上显示一切信息。打个比方,它就像是人的眼睛,没有了它,电脑就无法驱动形成图像了。显卡性能好,电脑的图形处理能力就高,尤其在玩游戏时更能发现这个(所以很多游戏会要求显卡性能)。对玩家而言,最好选择独立显卡。不过,如果不玩大型游戏,CPU内置核心显卡也基本能满足要求。缺点: 系统功耗有所加大,发热量也较大,额外购买。

电源:将电压220伏的市电转换为低等电压,然后送到主板及各个硬件!供电!电脑运行需要电力,而电源就是为此供电的,也可以说它在为电脑提供一切动力。电源决定了电脑的稳定性。它和人体心脏功能类似,都是提供动力的核心。

 CPU:是计算机的运算核心和控制核心,让电脑的各个部件顺利工作,起到协调和控制作用。

硬盘:存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。也被人们称之为“数据仓库”。
内存:1. 负责硬盘等硬件上的数据与CPU之间数据交换处理;2. 缓存系统中的临时数据。3. 断电后数据丢失。

二.程序是如何执行起来的?

当我们在电脑上打开QQ时(右键-打开 或者双击QQ图标),其实是通过鼠标(输入设备)向CPU发送了一条命令,CPU接收到这条命令后,QQ程序就从硬盘里被加载到内存(加载时不通过处理器,直接从硬盘加载程序到内存里),加载完成后,CPU就开始执行QQ程序。程序执行起来后,CPU可以让QQ程序显示在我们的在显示器上。也就是你看到了QQ 程序运行起来了。如果这个时候,你用QQ截取了一张屏幕的图片,那么这张图片会首先保存到内存,在没有退出截屏状态时,你可以在这张图片上写字、画线条,等你右键保存这张图片的时候,这张图片就会保存到硬盘里。

内存存取数据的速度比硬盘的存取速度快了10倍, 在某些环境里,硬盘和内存之间的速度差距可能会更大。

而CPU的速度比内存不知还要快多少倍。当我们把程序从硬盘放到内存以后,CPU就直接在内存运行程序,这样比CPU直接在硬盘运行程序就要快很多。

内存解决了一部分CPU运行过快,而硬盘数据存取太慢的问题。 提高了我们的电脑的运行速度。

内存就如同一条“高速车道”一般,数据由传输速度较慢的硬盘通过这条高速车道传送至CPU进行处理!

但内存是带电存储的(一旦断电数据就会消失),而且容量有限,所以要长时间储存程序或数据就需要使用硬盘。

三者之间的关系:

简单来说,硬盘用来存储我们的程序和数据,当我们运行程序的时候,CPU首先接受到我们的命令,之后CPU是告诉硬盘,我要运行你存储的程序A,你把程序A送到内存去。CPU对内存说,我让硬盘把程序A送到你这里来了,你保存一下。 等程序A被完整的送到内存之后。CPU就开始执行程序A。

 过程就像上面说的,我们在举一个接近我们生活的例子。

如果说把硬盘比喻成一个大仓库,CPU比喻成加工车间,那么内存就是一个临时的小仓库。从距离上来说, 相比内存到CPU的距离和硬盘到内存的距离,内存和CPU的距离更短。

硬盘(大仓库)用来保存车间需要用的原料和最终生产出来的商品。仓库太大,取出原料和存储商品太慢,耗时间。

内存(临时小仓库):原料会先放到这里,小仓库,可以很快的找到需要的原料或商品。

CPU(车间):从内存(小仓库)里拿到原料,生产商品。中间会有半成品,半成品可以放在内存(小仓库)里。

python电脑结构、ARP协议、单位转换、字节bytes、字符串与字节关系等知识总结第2张

三.Arp协议

发包分三步:

1.计算是否在同一个广播域

2.利用arp协议获取mac地址

3.发包

python电脑结构、ARP协议、单位转换、字节bytes、字符串与字节关系等知识总结第3张

1.如果在同一个广播域:

例如pc1要向pc3发包,流程如下:

(1.首先计算pc1和pc3在同一个广播域(利用ip进行计算)

(2.arp协议获取pc3的mac地址

格式:原mac  目标mac  原ip  目标ip

具体:pc1mac  FF:FF:FF:FF:FF:FF  192.168.11.10  192.168.11.11

(在同一个广播域所有机器都可以收到这个数据包,然后开始解包,发现ip地址不是自己的就丢弃,发现ip是自己的就返回自己的mac地址)

返回格式:自己的mac  目标mac  自己的ip  目标ip

具体:pc3mac  pc1mac  192.168.11.11  192.168.11.10

这样pc1就受到了pc3的mac地址

(3.开始发包

发包格式:原mac  目标mac  原ip  目标ip  数据部分

具体:pc1mac  pc3mac  192.168.11.10  192.168.11.11  数据

2.如果不在同一个广播域:

例如pc1要向pc4发包,流程如下:

(1.首先计算pc1和pc3不在同一个广播域

(2.arp协议获取pc1所在广播域的网关1的mac地址

格式:自己的mac  目标mac  自己的ip  目标ip

具体:pc1mac  网关1mac  192.168.11.10  网关ip

网关1解包发现是要自己的mac地址后,网关就会响应,把自己的mac地址返回给pc1

返回格式:网关1的mac  目标mac  网关1的ip  目标ip

具体:网关1mac  pc1mac  网关1ip  192.168.11.10

Pc1获取到网关1mac地址后开始发包

(3.pc1开始给pc4发包:

发包格式:原mac  目标mac  原ip  目标ip  数据部分

具体:pc1mac  网关1mac  192.168.11.10  172.16.45.10  数据

Pc4返回数据流程一样,这里不做赘述。

四.单位转换:

1GB=1024MB

1MB=1024KB

1KB=1024B  (Byte == 字节,简写B)

1B=8b  (bit == 二进制位,计算机数据最小的单位,简写b)

五、数据类型:字节bytes

表现形式:name = b”baby”

内部原理

Utf-8编码下:

01100010 b

01100001 a

01111001 y

如果是字符串类型的baby,那默认是Unicode,一字符占4个字节

如果有中文:

表现形式:b'\xe5\xa4\xa9\xe4\xb8\x8b'(“天下“的表现形式)

\x表示16进制

Utf-8编码下:

 python电脑结构、ARP协议、单位转换、字节bytes、字符串与字节关系等知识总结第4张

例如:\xe5表示00100101,其中e前四位,5后四位

因为是前四位,一共16中变换形式,所以用16进制刚好可以表现(\x)

所以\xe5 正确的表现形式是 1110 0101(就是十六进制和二进制的转换)

六、字符串和字节的关系

内存:

00000000 00000000 00000000 01010100         unicode    A

01010100                                                          utf-8      A

01010100 01010100                                          gbk       A

01010000 00000100                                          gb2312    A

...                                                                            …

硬盘:

01010100                                                 utf-8    A

01010100                                                 utf-8    A

01010100                                                 gbk      A

01010100                                                 gb2312    A

...                                                                 ...

本质上,内存中都是010101,具体是什么样子的010101,需要根据编码来决定。不同编码的010101,互相不认识。

在python3里:

默认解释器的编码:utf-8 -> 010101010101

特殊的:

字符串(str):

表现: a = "alex"  

本质: 01010101,unicode

字节(bytes):

表现: a = b"alex"  

本质: 01010101,某种编码: utf-8,gbk,.....

总结:

python3:

str   --> uniocde

bytes --> gbk,utf-8.....

python电脑结构、ARP协议、单位转换、字节bytes、字符串与字节关系等知识总结第5张

字符串类型的表现形式是 name = “baby” 默认是用Unicode编码的,当字符串需要网络传输或者硬盘储存时,需要将Unicode编码的str准换为其他编码的bytes,以节省空间。

免责声明:文章转载自《python电脑结构、ARP协议、单位转换、字节bytes、字符串与字节关系等知识总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Git报错:error: cannot open .git/FETCH_HEAD: Read-only file system25 个超棒的 HTML5 & JavaScript 游戏引擎开发库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Mac下的IDEA快捷键

  快捷键 功能 Option + enter 打开提示 Command + / 注释方式是“行注释”;可以注释当前行、取消当前行的注释 注释选中的内容、取消选中行的注释 Option + Command + / 注释方式为“多行注释”;注释选中的内容、取消注释 Option + Command + L 格式化代码 Comman...

MinGW 完整版本(无需安装)

跨平台开发时,MinGW是必不可少的。因为网络条件的原因,现在安装MinGW越来越麻烦,官方的安装工具下载缓慢且不稳定,手动安装又需要下载无数分散的压缩包。 现在提供一个无需分开安装的版本(gcc版本4.8.1,是目前可用的最新版本),包含了所有可能用到的编译器(gcc、g++、gfortran等)以及gdb,解压后接近1g的大小。 下载地址: 百度网盘:...

解决win10连接wifi,提示需要执行操作,并自动打开微软网站的问题

点电脑左下角的开始---运行----regedit。打开后1 找到注册表键值HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesNlaSvcParametersInternet2 双击HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesNlaSvcParameter...

Python web前端 06 运算符 循环

Python web前端 06 运算符 循环 一、运算符 #JS六大数据类型 #number 数字 #string 字符串 #boolean 布尔型 #function 函数 #undefined 未定义:一个变量声明之后没有复制就是未定义 #object 对象 在JS里面null属于对象类型,但是它不具有很多对象的共性,所以很多资料将他归为单...

20191218 实验二《Python程序设计》实验报告

学号 2020-2021-2 《Python程序设计》实验二报告 课程:《Python程序设计》班级: 1912姓名: 唐启恒学号:20191218实验教师:王志强实验日期:2021年5月7日必修/选修: 公选课 1.实验内容 设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。 考核基本语法、判定语句、循环语句、逻辑运算等知识点 2....

MacOS禁止向日葵开机启动

cd /Library/LaunchAgents//进入到系统的启动项文件存放目录 sudo vim com.oray.sunlogin.agent.plist//用vim直接修改向日葵的启动配置 sudo vim com.oray.sunlogin.startup.plist cd /Library/LaunchDaemons sudo vim com...