计算机硬件基础

1.计算机的发展史

  1946年第一代电子管计算机(诞生于美国宾夕法尼亚大学),以cpu为中心,使用计算机语言,速度慢,存储量小,主要用于数值计算。
  1958年第二代晶体管计算机,以存储器为中心,使用高级语言,应用范围扩大到数据处理和工业控制。
  1964年第三代中小规模集成电路计算机,以存储器为中心,增加了多种外部设备,文字图像处理功能加强。
  1971年第四代大规模和超大规模集成电路计算机,应用更广泛,核心软件集成在一个或多个芯片上,从而出现了微型计算机。

1.计算机硬件

  计算机系统分为计算机硬件和软件系统两大部分。
  冯·诺依曼体系:匈牙利著名数学家,提出计算机三个基本原则,采用二进制逻辑,程序存储执行以及计算机由五个部分组成(运算器,控制器,存储器,输入设备,输出设备)。
  奖项:冯·诺依曼奖章 。
  图灵奖:纪念英国著名数学家,人工智能之父阿兰·麦席森·图灵由美国计算机协会(ACM) 设立,一年给予一位=。
  运算器:由算术逻辑单元(ALU),累加器,状态寄存器,通用寄存器组成,CPU构成主要 器件。
  控制器:计算机的控制中心,CPU构成主要器件。
  中央处理器(CPU)由运算器和控制器组成,生产计算机CPU的厂商有英特尔(Inter) 和AMD,英特尔的CPU型号主要有赛扬系列,奔腾系列,酷睿i3,i5,i7。
  手机领域生产CPU的厂商主要有高通,德州仪器,三星,联发科(MTK),华为海思, 华为麒麟,苹果等。
  摩尔定律:集成电路上可以容纳的晶体管数目在大约每经过24个月便会增加一倍。 也就是说,处理器的性能每隔两年翻一倍。
  存储器:计算器中的记忆设备,用来存放程序与数据,分为内存储器与外存储器,内存储器 一般是指内存,也称主存,负责连接外存与CPU,计算机所有程序的运行都是在内存 中进行的。
  除内存外,内存处理器还包含随机存储器(RAM),只读存储器(ROM)和高速缓存 (CACHE)。
  随机存储器:数据可读可写,断电数据丢失。
  只读存储器:数据可读,数据一旦存入不更改,断电数据不丢失。
  高速缓存:内存条重要技术指标,读写速度影响计算机的性能,真正位于CPU与 内存之间的器件,读写速度比内存还快。
  外存储器指计算机内存及CPU缓存以外的存储器,断电仍能保存数据。例如:机械硬 盘,固态硬盘,光盘,U盘,软盘,磁带。
  输入设备:计算机输入数据和信息的设备。计算机与用户或其他设备通信的桥梁。常见的输 入设备有数位板,键盘,鼠标,扫描仪,麦克风,摄像头,游戏控制杆。
  输出设备:计算机终端设备,用于接收计算机数据的输出显示,打印,声音,控制外部设备操作,常见的输入设备有音响,显示器,打印机等。 

1.数制与编码

计算机内部的存储都是采用二进制方式进行存储的。
计算机的存储单位:
最小单位称为位(比特),简写为b(bit)。
最基本的单位称为字节,简写为(B)。
不同单位之间的换算关系如下:
  1B=8b
  1KB=1024B=2^10B
  1MB=1024KB=2^10KB
  1GB=1024MB=2^10MB
  1TB=1024GB
  1PB=1024TB
  1EB=1024PB
  1ZB=1024EB
  数制标识符:

数制 二进制 八进制 十进制 十六进制
标识符 B O D H

 

  数制换算关系:
  十进制逢十进一
  八进制逢八进一
  二进制逢二进一
  十六进制逢十六进一

3.1二进制与十进制的转换:

  十转二:
    如45.125
    整数除以2取余 反序读取
    小数乘2取整 正序
    结果为:101101.001

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    int a,b[100],c=0;
    cin>>a;
    for(int i=0;a!=0;i++){
        b[i]=a%2;
        a=a/2;
        c++;
    }
    for(int i=c-1;i>=0;i--){
        cout<<b[i];
    }
    return 0;
} 

 


  二转十:
    以小数点为起点,小数点左边第一位为2的0次方以此向左向右累加累减。

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    string a;
    cin>>a;
    int b[a.size()],c=0;
    for(int i=a.size()-1,d=0;i>=0;i--){
        b[i]=a[i]-'0';
        c+=b[i]*pow(2,d);
        d++;
    }
    cout<<c;
    return 0;
} 

 

3.2二进制与八进制的转换:

  以三位二进制为一组,求出每组的八进制:

 

 

  101101.001

  以小数点为起点,向左或向右每三位一组求出每一组的八进制(不足三位的补0):

  101 101 .001

  5 5.1

3.3 二进制与十六进制的转换:

  以四位二进制为一组,求出每组的十六进制:

  00101101.0010

  0010 1101 .0010

  2 B .2

98(10)=1100010(2)
10101011(2)=171(10)
1+2+0+8+0+32+0+128=171
4563(8)= 100 101 110 011(2)
1010111(2)=127(8)
365(8)=245(10)
5+6*8^1+3*8^2=245
101110(2)= (7)
101110 =0+2+4+8+0+32=46(10)
46(10)=64(7)
//十进制转二进制:
除2取余 反序输出
【例】: 57(10)=111001(2)
2571
2280
2140
271
231
211
20
//二进制转十进制: 
从右到左取每个位置上的数字乘2的n次方(0~n,n是最高位)累加求和
【例】111001(2)=(10)
1*2^0+0*2^1+0*2^2+1*2^3+1*2^4+1*2^5=1+0+0+8+16+32=57(10)
//十进制转八进制: 
除8取余 反序输出
【例】:89(10)=131(8)
8891
8113
811
80 
//八进制转十进制:
从右到左取每个位置上的数字乘8的n次方(0~n,n是最高位)累加求和
【例】131(8)=89(10)
1*8^0+3*8^1+1*8^2=1+24+64=89(10)
//二进制转八进制:
从右到左每三位分开不足三位最高位补0 求每三位所代表的十进制连接在一起 
【例】10101(2)=25(8)
010 101=25(8) 
//八进制转二进制 
从右到左每位分开  求每位所代表的二进制(三位,不足三位最高位补0)连接在一起 
【例】25(8)=(2) 
2 5= 10 101
//二进制转十六进制
10(1010) 11(1011) 12(1100) 13(1101) 14(1110) 15(1111)
1 2 3 4 5 6 7 8 9 A  B  C   D    E     F 
从右到左每4位分开 不足4位最高位补0 求每4位所代表的16进制连接在一起 
【例】10100101(2)=A5(16)
1010 0101=A 5
//十六进制转二进制 
从右到左每位分开  求每位所代表的二进制(4位,不足4位最高位补0)连接在一起 
FA7(16)=111110100111(2)
F A 7=111110100111

3.4 ASCLL编码

  全称:美国信息交换标准代码,基于拉丁字母的计算机编码系统,总共有128个字符,ascll编码用1个字节来存储,最高位默认为0,实际使用位字节后7位。

3.5 汉字编码

  汉字编码分为外码,交换码,机内码和字形码。外码指的是输入码,用于将汉字输入计算机内的一组键盘符号,常见的有拼音码,五笔字型码等;交换码是指不同的具有汉字处理功能的计算机系统之间在交换汉字信息时所使用的代码标准;机内码是指计算机内部存储,处理加工和传输汉字时所用的由符号0和1组成的代码;字形码是点阵代码的一种,是为了将汉字在显示器或打印机上进行输出,把汉字按图形符号设计成点阵图。
  我国汉字编码的标准是GB2312字符集,也称为国际码,由两个字节组成的且两个字节的最高位都为1,收录汉字6763个。

3.6 原码,反码,补码

  在二进制的编码过程中分为原码,反码,补码。

  原码是计算机对数字二进制定点表示方法。原码表示法在数值前面增加了符号位(即最高位为符号位):0代表正,1代表负。原码在计算机内部不能直接进行计算。
  反码是数值存储的一种,多应用于系统环境设置。
  补码是计算机中数字存储的常用形式。原码和反码在计算过程中会出现错误。
  由原码求反码规则:
    正数的反码与其原码相同;负数的反码则是对数值逐位取反,符号位保持1。

    0101(原)->0101(反)

    1101(原)->1010(反)

  由原码求补码规则:
  原码为正,补码与原码相同;原码为负,在反码的基础上加1。

  0101(原)->0101(补)

  1101(原)->1011(补)

3.7 位运算

  位运算分为位逻辑运算与移位运算(对应二进制位):


含义   C++语言表示   规则
与运算   a&b   都为1时为1,反之为0。
或运算   a|b   两个数其中一个为1就为1,反之为0。
异或运算   a^b   两个数不同时结果为1,反之为0。
取反运算   ~a   对数值进行取反。
左移运算   a<<b   左移b位乘以2的b次幂。(二进制数向左移动b位,高位丢弃,在后面添b个0)
右移运算(带符号运算)   a>>b   右移b位除以2的b次幂(取整);(二进制数右移b位,去掉末b位);对于有符号的,在右移时,符号位随之移动;为正数时,最高位补0;为负数时,符号位为1,最高位时补0或是1取决于编译系统。

注:在逻辑运算中,数学表示符于编程逻辑的对应关系为:

  ∧表示与
  ∨表示或
  ¬表示非

3.8 多媒体文件的数字化

图像在计算机中存储方式有两种:位图和矢量图。
位图通过存储像素点得方式来描述的,矢量图则是一系列指令的集合。
不同点   位图   矢量图
描述方式   像素           指令集合
存储空间     大             小
色彩效果   丰富               单调
缩放效果   放大后无限倍后失真         不失真
图像的数字化主要指的就是位图的数字化,将像素所表现出来的色彩使用二进制的形式记录出来,因此每一个像素点需要用n位二进制来表示。
例如:

一幅位图有16种颜色,大小为800*600像素,所占储存空间为多大?

16种颜色需要用4位二进制来表示,需要使用800*600*4=1920000b。

  视频的数字化实质上是在图像数字化的基础上加上时间参数,所以视频数字化存储空间占用计算公式为:
  像素*色彩二进制*帧
  声音的数字化则需要考虑采样频率与采样位数的限制,通过每个一段时间读取波形种的一个数据点,再将数据点进行量化(转为二进制)便可以计算声音的存储空间,计算公式如下:
  声音存储容量=采样频率*量化位数*声道数*时间

posted @ 2023-10-15 09:48  爱吃泡面的皮卡  阅读(321)  评论(0)    收藏  举报