计算机学习笔记2
计算机基础知识笔记

计算机基础知识笔记【最新版】目录一、计算机基础知识概述二、计算机硬件系统1.中央处理器2.存储器3.输入设备4.输出设备5.总线三、计算机软件系统1.操作系统2.应用软件3.编程语言四、计算机网络基础1.网络的定义与分类2.网络协议与网络模型3.网络设备的基本类型五、计算机安全知识1.计算机病毒与防范2.数据加密与保护3.网络安全与隐私保护正文【一、计算机基础知识概述】计算机是一种用于处理和存储信息的电子设备,由硬件系统和软件系统两大部分组成。
计算机基础知识主要包括计算机硬件和软件系统的构成及其工作原理,以及计算机网络和计算机安全等相关知识。
【二、计算机硬件系统】1.中央处理器(CPU):是计算机的核心部件,负责执行程序指令。
2.存储器:用于存储程序和数据。
主要包括随机存储器(RAM)和只读存储器(ROM)。
3.输入设备:用于将外部信息输入计算机。
常见的输入设备有键盘、鼠标、扫描仪等。
4.输出设备:用于将计算机处理后的信息输出。
常见的输出设备有显示器、打印机等。
5.总线:是计算机内部各个部件之间进行数据传输和通信的电路。
【三、计算机软件系统】1.操作系统:是管理计算机硬件资源和提供应用程序运行环境的系统软件。
常见的操作系统有 Windows、Linux、Mac OS 等。
2.应用软件:是用户为了完成特定任务而使用的软件,如办公软件、图形图像软件、多媒体软件等。
3.编程语言:是一种用于人与计算机之间沟通的工具,常见的编程语言有 C、C++、Java、Python 等。
【四、计算机网络基础】1.网络的定义与分类:网络是指将地理位置不同的计算机和外部设备通过通信线路互相连接起来,以实现资源共享和信息传递的系统。
网络根据覆盖范围、拓扑结构和协议等方面可分为不同类型。
2.网络协议与网络模型:网络协议是计算机网络中数据传输的规则。
常见的网络协议有 TCP/IP、HTTP、FTP 等。
网络模型是用于描述计算机网络结构的模型,如 OSI 七层模型、TCP/IP 四层模型等。
袁春风计算机基础笔记

袁春风计算机基础笔记袁春风计算机基础笔记1.计算机的基本概念:计算机是一种能够自动进行数据处理和存储的电子设备。
它由硬件和软件两部分组成,可以执行各种计算、逻辑和控制操作。
2.计算机的组成部分:- 输入设备:用于将数据和指令输入到计算机中,如键盘、鼠标、扫描仪等。
- 中央处理器(CPU):是计算机的核心部件,负责执行指令、进行数据处理和控制计算机的运行。
- 存储器:用于存储计算机运行时所需的数据和程序,包括内存和外存。
- 输出设备:将计算机处理后的结果输出给用户,如显示器、打印机等。
3.计算机的工作原理:计算机通过运行指令,将输入的数据进行处理,然后产生输出结果。
它的工作原理可以简单概括为输入-处理-输出的过程。
4.计算机的数据表示:计算机中的数据以二进制形式表示,由0和1组成。
二进制的优点是简单、易于实现和理解,可以通过逻辑门电路进行处理和运算。
5.计算机的运算方式:计算机通过算术逻辑单元(ALU)进行算术运算和逻辑运算。
算术运算包括加法、减法、乘法和除法等,逻辑运算包括与、或、非等。
6.计算机的存储器:计算机的存储器包括内存和外存。
内存用于存放计算机运行时所需的数据和程序,具有快速读取和写入的特点;外存用于长期存储数据和程序,容量较大但读写速度较慢。
7.计算机的操作系统:操作系统是一种软件,负责管理计算机的硬件资源、提供用户与计算机之间的接口,并协调各种应用程序的运行。
常见的操作系统有Windows、Linux、macOS等。
8.计算机网络:计算机网络是多台计算机通过通信设备互相连接起来,共享资源和信息的系统。
常见的网络包括局域网、广域网和互联网等。
9.计算机的应用领域:计算机广泛应用于各个领域,包括科学研究、工程设计、商业管理、教育培训、娱乐等。
它已成为现代社会不可或缺的工具。
以上是袁春风关于计算机基础的笔记,涵盖了计算机的基本概念、组成部分、工作原理、数据表示、运算方式、存储器、操作系统、计算机网络和应用领域等内容。
Allegro学习笔记之2——覆铜

Allegro学习笔记之2——覆铜所谓覆铜,就是将PCB上闲置的空间作为基准面,然后用固体铜填充,这些铜区又称为灌铜。
敷铜的意义:1)减小地线阻抗,提高抗干扰能力;2)降低压降,提高电源效率;3)与地线相连,还可以减小环路面积。
4)也出于让PCB 焊接时尽可能不变形的目的,大部分PCB 生产厂家也会要求PCB 设计者在PCB 的空旷区域填充铜皮或者网格状的地线。
不过敷铜如果处理的不当,那将得不赏失这是一个实测的案例,测量结果是利用EMSCAN 电磁干扰扫描系统( )获得的,EMSCAN 能使我们实时看清电磁场的分布。
在一块多层PCB 上,工程师把PCB 的周围敷上了一圈铜,如图1 所示。
在这个敷铜的处理上,工程师仅在铜皮的开始部分放置了几个过孔,把这个铜皮连接到了地层上,其他地方没有打过孔。
在高频情况下,印刷电路板上的布线的分布电容会起作用,当长度大于噪声频率相应波长的1/20 时,就会产生天线效应,噪声就会通过布线向外发射。
从上面这个实际测量的结果来看,PCB 上存在一个22.894MHz 的干扰源,而敷设的铜皮对这个信号很敏感,作为“接收天线”接收到了这个信号,同时,该铜皮又作为“发射天线”向外部发射很强的电磁干扰信号。
我们知道,频率与波长的关系为f=C/λ。
式中f 为频率,单位为Hz,λ为波长,单位为m,C 为光速,等于3×108 米/秒对于22.894MHz 的信号,其波长λ为:3×108/22.894M=13 米。
λ/20为65cm。
本PCB 的敷铜太长,超过了65cm,从而导致产生天线效应。
目前,我们的PCB 中,普遍采用了上升沿小于1ns 的芯片。
假设芯片的上升沿为1ns,其产生的电磁干扰的频率会高达fknee = 0.5/Tr =500MHz。
对于500MHz 的信号,其波长为60cm,λ/20=3cm。
也就是说,PCB上3cm 长的布线,就可能形成“天线”。
计算机二级知识点总结

1、第一台计算机:1946年2月14日,在美国宾西尼亚大学的莫尔电机学院,世界第一台现代电子计算机“埃尼阿克”ENIAC诞生,重达30t,在1s能进行5000次加法运算和500次乘法运算。
2、计算机四代分别是:电子管计算机,晶体管计算机,小、中规模集成电路计算机,大规模和超大规模集成电路计算机。
3、计算机应用:数值计算、数据处理、实时控制、计算机辅助设计CAD、计算机辅助教学CAI、计算机辅助制造CAM等。
(CIMS)是计算机/现在集成制造系统。
4、▪诺依曼:采用二进制和存储程序控制概念;硬件核心有五部分组成(运算器、控制器、存储器、输入设备、输出设备)。
运算器和控制器合称为中央处理器即CPU.)5、微型机的主机:一般包括CPU、存、I/O接口电路、系统总线。
6、存储容量:计算机的存储器容量是以字节(B)为单位表示的。
除用字节为单位表示存储容量外,还可以用KB、MB、GB等表示。
1B=8bit;1KB=1024B;1MB=1024KB;1GB=1024MB计算机中最小多的数据单位是二进制的一个数位,简称为位(bit)8位二进制数为一个字节(Byte),字节是计算机中用来表示存储空间大小的基本单位。
计算机数据处理时,一次存取、加工和传送的数据长度称为字,字是计算机进行数据存储和数据处理的运算单位。
计算机中每个存储单元的编号称为单元地址。
SRAM的数据一旦断电就会消失。
7、ASCII码:一个字符的ASCII码通常占一个字节,用七位二进制数码组成,所以ASCII码最多可表示128个不同的符号(或用一个字节表示,最高位为“0”)。
例如:数字0 ~9用ASCII码表示为30H ~39H;大写英文字母A ~Z的ASCII码为41H ~5AH,H表示十六进制,B 表示二进制,D 表示十进制。
控制字符< 数字符号< 大写字母< 小写字母。
小写的字母的ASCII码比对应的大写字母的ASCII大20H(32D)8、区位码:(1)可以唯一确定一个汉字或符号。
计算机系统导论——读书笔记——第二章信息的表示和处理

计算机系统导论——读书笔记——第⼆章信息的表⽰和处理第⼆章信息的表⽰和处理2.1 信息存储2.1.1 ⼗六进制2.1.2 字数据⼤⼩2.1.3 寻址和字节顺序1.地址:对象所使⽤的字节中最⼩的地址2.⼤端法:最⾼有效字节在前⼩端法:最低有效字节在前(⼤多Intel兼容机使⽤)3.发送⽅机器(内部代码)——>⽹络应⽤程序(⽹络标准)——>接收⽅机器(内部代码)4.⼩程序——打印程序对象的字节表⽰1 #include <stdio.h>2using namespace std;34 typedef unsigned char * byte_pointer;//定义类型:指向unsigned char的指针56void show_byte(byte_pointer start, size_t len){7 size_t i;8for(i = 0; i < len; ++i)9 printf(" %.2x", start[i]);//%.2x表⽰整数必须⽤⾄少两个数字的⼗六进制格式输出10 printf("\n");11 }1213void show_int(int x){14 show_byte((byte_pointer) &x, sizeof(int));15 }1617void show_float(float x){18 show_byte((byte_pointer) &x, sizeof(float));19 }2021void show_double(double x){22 show_byte((byte_pointer) &x, sizeof(double));23 }2425void show_pointer(void * x){//void*是特殊类型的指针,没有相关联的类型信息26 show_byte((byte_pointer) &x, sizeof(void *));27 }2829int main(){30int x;31float y;32double z;33while(scanf("%d %f %lf", &x, &y, &z)){34 show_int(x);35 show_float(y);36 show_double(z);37 show_pointer(&x);38 show_pointer(&y);39 show_pointer(&z);40 }41return0;42 }输⼊111-1-1.0-1.0123451.0011.001输出01 00 00 0000 00 80 3f00 00 00 00 00 00 f0 3f98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 00ff ff ff ff00 00 80 bf00 00 00 00 00 00 f0 bf98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 0039 30 00 00c5 20 80 3f6a bc 74 93 18 04 f0 3f98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 00我的电脑是MaxOS,可以看出它是64位系统,采⽤⼩端法表⽰5.可以通过在终端(mac是terminal,windows是命令⾏⼯具)执⾏命令man ascii得到⼀张ASCII字符码表,回车后运⾏结果如下ASCII(7) BSD Miscellaneous Information Manual ASCII(7)NAMEascii -- octal, hexadecimal and decimal ASCII character setsDESCRIPTIONThe octal set:000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 bel010 bs 011 ht 012 nl 013 vt 014 np 015 cr 016 so 017 si020 dle 021 dc1 022 dc2 023 dc3 024 dc4 025 nak 026 syn 027 etb030 can 031 em 032 sub 033 esc 034 fs 035 gs 036 rs 037 us040 sp 041 ! 042 " 043 # 044 $ 045 % 046 & 047 '050 ( 051 ) 052 * 053 + 054 , 055 - 056 . 057 /060 0 061 1 062 2 063 3 064 4 065 5 066 6 067 7070 8 071 9 072 : 073 ; 074 < 075 = 076 > 077 ?100 @ 101 A 102 B 103 C 104 D 105 E 106 F 107 G110 H 111 I 112 J 113 K 114 L 115 M 116 N 117 O120 P 121 Q 122 R 123 S 124 T 125 U 126 V 127 W130 X 131 Y 132 Z 133 [ 134 \ 135 ] 136 ^ 137 _140 ` 141 a 142 b 143 c 144 d 145 e 146 f 147 g150 h 151 i 152 j 153 k 154 l 155 m 156 n 157 o160 p 161 q 162 r 163 s 164 t 165 u 166 v 167 w170 x 171 y 172 z 173 { 174 | 175 } 176 ~ 177 delThe hexadecimal set:00 nul 01 soh 02 stx 03 etx 04 eot 05 enq 06 ack 07 bel08 bs 09 ht 0a nl 0b vt 0c np 0d cr 0e so 0f si10 dle 11 dc1 12 dc2 13 dc3 14 dc4 15 nak 16 syn 17 etb18 can 19 em 1a sub 1b esc 1c fs 1d gs 1e rs 1f us20 sp 21 ! 22 " 23 # 24 $ 25 % 26 & 27 '28 ( 29 ) 2a * 2b + 2c , 2d - 2e . 2f /30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 738 8 39 9 3a : 3b ; 3c < 3d = 3e > 3f ?40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G48 H 49 I 4a J 4b K 4c L 4d M 4e N 4f O50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W58 X 59 Y 5a Z 5b [ 5c \ 5d ] 5e ^ 5f _60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g68 h 69 i 6a j 6b k 6c l 6d m 6e n 6f o70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w78 x 79 y 7a z 7b { 7c | 7d } 7e ~ 7f delThe decimal set:0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 '40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 /48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 756 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ?64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 delFILES/usr/share/misc/asciiHISTORYAn ascii manual page appeared in Version 7 AT&T UNIX.BSD June 5, 1993 BSD(END)2.1.4 表⽰字符串1.⼗进制数字‘y’的ascii码正好是0x3y2.strlen(str)函数不计算终⽌的空字符(ascii码为0x00)3.字符编码⽅式:(1)ASCII (American Standard Code for Information interchange)(2)Unicode (Unique Code)(3)UTF-8 / UTF-16 / UFT-32 (Unicode Transformation Format)2.1.5 表⽰代码2.1.6 布尔代数(Boolean Algebra)简介1.布尔运算&对|有分配律:a&(b|c) = (a&b)|(a&c)布尔运算|对&有分配律:a|(b&c) = (a|b)&(a|c)2.位向量:长度为w,由0和1组成的串应⽤:表⽰有限集合/压位运算(例:[01101010]表⽰集合{1,3,5,6}),位向量掩码/屏蔽信号3.布尔环(Boolean ring),类似于整环/整数环“加法”逆元:^类似于+; 每个整数x有加法逆元-x使得x+(-x)=0,类似地,每个布尔元素a都有“加法逆元”a使得a^a=0; 有趣的性质:(a^b)^a=b 1//这是⼀个不需要第三个量的交换函数,不过它并没有性能上的优势2void inplace_swap(int *x, int *y){//*x = a, *y = b3 *x = *x ^ *y;//*x = a^b, *y = b4 *y = *x ^ *y;//*x = a^b, *y = a5 *x = *x ^ *y;//*x = b, *y = a6 }2.1.7 C语⾔中的位级运算:&, |, ^, ~2.1.8 C语⾔中的逻辑运算: &&, ||, !2.1.9 C语⾔中的移位运算:>>, <<1.逻辑右移(⾼位补0,⽆符号数进⾏逻辑右移)算数右移(⾼位补符号位,有符号数进⾏算数右移)(1)初级运算符[]().->(2)单⽬运算符(3)算数运算符(4)移位运算符(5)关系运算符(6)位级运算符(7)逻辑运算符(8)赋值运算符2.2 整数表⽰2.2.1 整形数据类型2.2.2 ⽆符号数的编码(unsigned)2.2.3 补码编码(two's-complement)1.<limits.h>库:INT_MIN, INT_MAX, UINT_MAX<stdint.h>库:intN_t, UintN_t (t = 16,32,64等)(我在xcode上没有include这两个库也能直接使⽤INT_MIN、int32_t等)2.有符号数的表⽰⽅法(1)补码(two's-complement):最⾼位权重为-2^(w-1)(2)反码(ones' complement):最⾼位权重为-(2^(w-1)-1)(3)原码(sign-magnitude):最⾼位为1表⽰所有其他位权重为负注:(2)(3)中0的表⽰法不唯⼀,有+0和-0两种2.2.4 有符号数和⽆符号数之间的转换(可能)改变数值,但不改变位表⽰1.补码转换为⽆符号数(w位):TMin <= x < 0, T2U(x) = x + 2^w0 <= x <= TMax, T2U(x) = x2.⽆符号数转换为有符号数(w位):0 <= x <= TMax, U2T(x) = xTMax < x <= UMax, U2T(x) = x - 2^w2.2.5 C语⾔中的有符号数和⽆符号数1.数字常量默认为有符号数,加上后缀u或U可创建⽆符号数常量2.类型转换的⽅式:(1)显式:强制类型转换(2)隐式:不同类型变量间赋值3.%d有符号⼗进制,%u⽆符号⼗进制,%o⼋进制,%x⼗六进制4.C语⾔对于同时包含有符号数和⽆符号数的表达式,会隐式地将有符号数转换为⾮负的⽆符号数 1/*2这是⼀个测试函数3注:TMin写成-2147483647-1⽽⾮-21474836484是因为limits.h中定义INT_MIN=-INT_MAX-1,以规避某些奇怪的现象5*/6 #include <cstdio>7using namespace std;89int main(){10 printf("-1 < 0u = %d\n", -1 < 0u);11 printf(" -1 = 0x%x \n", -1);12 printf(" 0u = 0x%x\n\n", 0u);1314 printf("2147483547 > (int)2147483648u = %d\n", 2147483547 > (int)2147483648u);15 printf(" 2147483547 = 0x%x \n", 2147483547);16 printf(" (int)2147483648u = 0x%x\n\n", (int)2147483648u);1718 printf("-2147483647-1u < 2147483647 = %d\n", -2147483647-1u < 2147483647);19 printf(" -2147483647-1u = 0x%x \n", -2147483647-1u);20 printf(" 2147483647 = 0x%x\n\n", 2147483647);2122 printf("-2147483647-1u < -2147483647 = %d\n", -2147483647-1u < -2147483647);23 printf(" -2147483647-1u = 0x%x \n", -2147483647-1u);24 printf(" -2147483647 = 0x%x\n\n", -2147483647);25return0;26 }运⾏结果如下-1 < 0u = 0-1 = 0xffffffff0u = 0x02147483547 > (int)2147483648u = 12147483547 = 0x7fffff9b(int)2147483648u = 0x80000000-2147483647-1u < 2147483647 = 0-2147483647-1u = 0x800000002147483647 = 0x7fffffff-2147483647-1u < -2147483647 = 1-2147483647-1u = 0x80000000-2147483647 = 0x800000012.4 浮点数2.4.1 ⼆进制⼩数2.4.2 IEEE浮点表⽰1.表⽰形式:(1)符号(sign)s: 表⽰+-(2)尾数(significand)M:⼆进制⼩数,取值范围为[1,2)或[0,1)(3)阶码(exponent)E:对浮点数加权,权重为2的E次幂2.编码:s编码符号sign s,exp编码阶码exponent E,frac编码尾数significand M3.三种情况(1)规格化的(noemalized): exp!=00...0 && exp!=11 (1)i. 阶码 E = exp - bias, bias = 2^(k-1)-1, k=exp的位数ii. 尾数 M = 1.xx...x = 1.frac的位(隐含的以1开头的表⽰)(2)⾮规格化的(denormalized): exp == 00 0i. 阶码 E = 1 - bias, bias = 2^(k-1)-1, k=exp的位数ii. 尾数 M = 0.xx...x = 0.frac的位iii.注意:0.0有两种表⽰⽅法+0.0和-0.0,符号位分别为0或1,其他位全部为0(3)特殊值: exp == 11 (1)i. ⽆穷:frac = 00...0, s=0或1表⽰+∞或-∞,能够表⽰溢出的运算结果,如x/0 ii. Nan(not a number): frac != 00...0, 表⽰⾮实数的运算结果,如根号-1,∞-∞4.三种情况的数字分布⾮规格化数字的阶码定义为E=1-bias可以补偿⾮规格化的尾数没有隐含的开头1,有助于数字表⽰的平滑转变;否则,在绝对值最⼤的⾮规格化数字(其⼆进制表⽰为0 00...0 11...1)和绝对值最⼩的规格化数字(其⼆进制表⽰为0 00...01 00...0)之间将存在跳跃2.4.3 数字⽰例1. 处理正浮点数时,若按照⽆符号整数解释他们的⼆进制表⽰,则可以发现它们的⼤⼩顺序不变;负浮点数只需要倒序。
计算机应用基础课堂学习重要笔记

计算机应用基础(课堂笔记重要点概括)第一章计算机基础知识1、从1946年第一台电子计算机问世以来,根据表示计算机信息逻辑元件的不同,将计算机的发展分成4代。
1946年2月,世界上第一台计算机于美国宾州大学诞生,取名电子数字积分计算机,简称ENIAC。
2、电子计算机发展过程中的两位主要人物(并称为“计算机之父”)。
A、奥地利数学家冯·诺依曼主要贡献:提出了现代电脑的体系结构。
B、英国科学家阿兰·图灵主要贡献:创立通用计算机的理论,即“图灵机理论”。
3、电子计算机发展中经历的的四阶段4、计算机的发展趋势5、计算机的分类6、计算机的应用7、计算机的特点A.运算速度快。
B.运算精度高。
C、存储能力大(记忆容量大)D、逻辑判断能力。
E、自动控制能力。
8、数制及各进制的转换第二章一、冯·诺依曼结构计算机的工作原理:二、计算机系统的组成:计算机系统通常是由硬件系统和软件系统两大部分组成的,只有两者相互结合才能充分发挥计算机系统的功能。
三、计算机硬件系统:计算机硬件系统是由运算器、控制器、存储器、输入设备和输出设备五大部件组成,它们通过系统总线连接在一起。
1.运算器:运算器又称算术逻辑单元(Arithmetic Logic Unit,简称ALU),是计算机对数据进行加工处理的部件。
2.控制器:控制器是计算机的指挥控制中心,它按照主频的节拍产生各种控制信号,指挥整机工作,即决定在什么时间、根据什么条件执行什么动作,使整个计算机能够有条不紊自动执行程序。
3.存储器:存储器的主要功能是读取数据和存储数据,读取数据称为存储器的“读”,存储数据称为存储器的“写”。
存储器4.输入/输出设备输入/输出设备简称I/O(Input/Output)设备。
用户通过输入设备将程序和数据输入计算机。
四、微型计算机的性能指标硬件系统的性能指标是由其硬件组成部分的性能指标构成的。
综合衡量一台微型计算机的主要性能指标有:1.字长:字长是指计算机信息处理中,一次存取、传送和加工的数据长度,标志着计算机处理数据的速度和精度,所以说字长是微型计算机的一个重要技术性能指标。
计算机学习笔记

计算机学习笔记计算机学习是当今社会中至关重要的一项技能,无论是在职场还是日常生活中,计算机的应用已经无处不在。
因此,为了提升自己的竞争力和适应快速发展的科技环境,学习计算机知识是迫在眉睫的任务。
在这篇文章中,我将分享我个人的计算机学习笔记,希望能够对读者有所帮助。
1. 计算机基础知识首先,我们需要了解一些计算机的基础知识。
计算机由硬件和软件两部分组成。
硬件包括中央处理器(CPU)、内存、硬盘、显示器等,而软件则包括操作系统、应用程序等。
了解这些基础知识有助于我们更好地理解计算机的工作原理。
2. 编程语言学习一门编程语言是必不可少的。
编程语言是计算机与人之间沟通的桥梁,它是指令的集合,告诉计算机应该如何执行某个任务。
常见的编程语言有Python、Java、C++等。
我选择从Python入手,因为它是一门简单易学且功能强大的语言。
3. 数据结构与算法学习数据结构与算法是提高编程能力的关键。
数据结构是组织和存储数据的方式,而算法则是解决问题的步骤和策略。
了解不同的数据结构和算法可以帮助我们优化程序性能,并提高编程效率。
例如,链表、堆栈、队列等是常见的数据结构,而二分查找、排序算法等是常见的算法。
4. 操作系统操作系统是计算机的核心软件之一,它负责管理计算机的资源并为其他软件提供服务。
学习操作系统可以帮助我们理解计算机的运行机制,并学会如何管理和优化计算机资源。
常见的操作系统有Windows、Linux等,我选择了学习Linux,因为它在服务器领域应用广泛,并且开放源代码,有利于自学和深入研究。
5. 数据库数据库是用于存储和管理数据的软件系统。
学习数据库可以帮助我们理解数据的组织和管理,以及如何使用数据库进行数据操作和查询。
常见的数据库管理系统有MySQL、Oracle等,在学习过程中我选择了MySQL进行实践操作。
6. 网络和互联网网络和互联网已经成为现代社会中不可或缺的一部分。
了解网络的基本原理、网络协议和互联网的运作方式对于计算机学习者来说是非常重要的。
计算机基础知识笔记(个人整理)

计算机基础知识笔记第一章计算机基础计算机分类:服务器、工作站、台式机、便携机(笔记本、移动PC)、手持设备(掌上电脑、亚笔记本)[其他手持设备有PDA(个人数字助理)、商务通、快译通及第二代半、第三代手机]。
服务器:安全性、可靠性、联网特性、远程管理、自动监控。
计算机制四特点:1、有信息处理的特性;2、有程序控制的特性3、有灵活选择的特性4、有正确应用的特性。
计算机发展经历五个阶段:1、大型机阶段2、小型机阶段3、微型机阶段4、客户机/服务器阶段5、互联网阶段计算机指标:1、位数。
8位是一个字节。
2、速度。
MIPS是表示单字长定点指令的平均执行速度。
MFLOPS是考察单字长浮点指令的平均执行速度。
3、容量。
Byte用B表示。
1KB=1024B。
平均寻道时间是指磁头沿盘片移动到需要读写的磁道所要的平均时间。
平均等待时间是需要读写的扇区旋转到磁头下需要的平均时间。
数据传输率是指磁头找到所要读写的扇区后,每秒可以读出或写入的字节数。
4、带宽。
Bps用b。
5、版本。
6、可靠性。
平均无故障时间MTBF和平均修复时间MTTR来表示。
计算机应用领域:1、科学计算2、事务处理3、过程控制4、辅助工程5、人工智能6、网络应用一个完整的计算机系统由软件和硬件两部分组成。
计算机硬件组成四个层次:1、芯片2、板卡3、设备4、网络奔腾芯片的技术特点:1、超标量技术。
通过内置多条流水线来同时执行多个处理,其实质是用空间换取时间。
2、超流水线技术。
通过细化流水、提高主频,使得机器在一个周期内完成一个甚至多个操作,其实质是用时间换取空间。
奔腾采用每条整数流水线分为四级流水:指令预取、译码、执行和写回结果。
其浮点流水线分为八级流水,前四级与整数流水线相同。
后四级有:两级浮点操作、一级四舍五入及写回浮点运算结果、一级为出错报告。
3、分支预测。
动态的预测程序分支的转移情况。
4、双CACHE哈佛结构:指令与数据分开。
5、固化常用指令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内部文件
USB摄像头实时视频捕捉测试程序
(2015.7.20——2015.7.24)
<智慧云联信息技术(北京)有限公司>
版本<V0.1>
编制者王琳珂编制日期2015-07-24 审核者审核日期
批准者批准日期
签字日期
2015年07月24日
目录
1. 注册回调函数 (3)
2. 回调函数FrameCallbackProc的功能实现 (4)
2.1 将每一帧数据转化成BMP图片显示 (4)
2.2 在BMP图片上实现画线、写文本的功能 (5)
1. 注册回调函数
回调函数 ( Callback Functions ) 就是一个通过函数指针调用的函数。
如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就说这是回调函数。
回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
调用约定为CALLBACK,CALLBACK其实是一个宏
#define CALLBACK__stdcall
用capSetCallbackOnFrame宏注册回调函数capSetCallbackOnFrame (hVideoWnd,FrameCallbackProc)。
上面第二个参数是回调函数的地址,名字可以自己来定义,但是回调函数必须有如下参数和返回值。
LRESULT CALLBACK FrameCallbackProc(HWND hVideoWnd,LPVIDEOHDR lpVHdr);
用capSetCallbackOnFrame (hVideoWnd,FrameCallbackProc)注册后,当每得到一桢数据后,系统就调用函数FrameCallbackProc。
此测试程序中,函数FrameCallbackProc实现的功能是将得到的帧数据转化成BMP图片并可以在图片中画直线、方框或者显示文字。
此外,实时捕捉视频之前需要进行一些初始化设置:
void CaptureBegin()
{
hDC = GetWindowDC(hWnd);
ScenehDC = CreateCompatibleDC(hDC);
/*用ZeroMemory将BMP格式图像的文件头内存块清零(使用结构前清零,而不让结构的成员数值具有不确定性,是一个好的编程习惯)。
然后设置BITMAPINFO DCitmap的BITMAPINFOHEADER bmiHeader中的各个数据成员:*/
ZeroMemory(&DCitmap.bmiHeader, sizeof(BITMAPINFOHEADER));
DCitmap.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
DCitmap.bmiHeader.biBitCount = 24;
DCitmap.bmiHeader.biWidth = AVIWidth;
DCitmap.bmiHeader.biHeight = AVIHeight;
DCitmap.bmiHeader.biPlanes = 1;
DCitmap.bmiHeader.biClrUsed = 0;
DCitmap.bmiHeader.biClrImportant = 0;
DCitmap.bmiHeader.biSizeImage = AVIWidth * AVIHeight *
(DCitmap.bmiHeader.biBitCount / 8);
//创建应用程序可以直接写入的、与设备无关的位图(DIB)
SceneBitmap = CreateDIBSection(ScenehDC, &DCitmap, DIB_RGB_COLORS, NULL ,0 , 0);
//SelectObject(),该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
AboriginaalObject = SelectObject(ScenehDC, (HGDIOBJ)SceneBitmap);
//每个像素有3个字节(R,G,B)
OutWidth = AVIWidth * 3;
InputWidth = AVIWidth * 3;
capSetCallbackOnFrame(hVideoWnd,FrameCallbackProc);
}
其中各个变量的定义如下:
HDC hDC = 0;
HDC ScenehDC = 0;
DWORD AVIWidth = 640;
DWORD AVIHeight = 480;
BYTE BmpByte[1920*480];
BITMAPINFO DCitmap;
HBITMAP SceneBitmap;
HGDIOBJ AboriginaalObject;
long X;
long Y;
long OutWidth;
long InputWidth;
long cR;
long cG;
long cB;
2.回调函数FrameCallbackProc的功能实现
2.1 将每一帧数据转化成BMP图片显示
写回调函数FrameCallbackProc,将得到的帧数据转化成BMP图片并显示。
LRESULT CALLBACK FrameCallbackProc(HWND hVideoWnd,LPVIDEOHDR lpVHdr) {
/*1个像素占3个字节,按顺序分别为B,G,R;由于位图信息头中的图像高度是正数,所以位
图数据在文件中的排列顺序是从左下角到右上角,以行为主序排列的。
*/
for(Y=1; Y<=AVIHeight; Y++)
{
for(X=0; X<AVIWidth; X++)
{
cB = lpVHdr->lpData[((AVIHeight-Y)*InputWidth)+(X*3)];
cG = lpVHdr->lpData[((AVIHeight-Y)*InputWidth)+(X*3)+1];
cR = lpVHdr->lpData[((AVIHeight-Y)*InputWidth)+(X*3)+2];
BmpByte[((Y-1)*OutWidth)+(X*3)]=cB;
BmpByte[((Y-1)*OutWidth)+(X*3)+1]=cG;
BmpByte[((Y-1)*OutWidth)+(X*3)+2]=cR;
}
}
//将位图的颜色数据位设置成指定值
SetBitmapBits(SceneBitmap,sizeof(BmpByte),BmpByte);
//对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。
BitBlt(hDC, 0, 50, AVIWidth, AVIHeight, ScenehDC, 0, 0, SRCCOPY);
return (LRESULT) TRUE ;
}
2.2 在BMP图片上实现画线、写文本的功能
实现在BMP图片上画线写文本等功能,只需要将相应的测试程序写在回调函数FrameCallbackProc中。
具体的功能实现如下:
//设置透明背景
HBRUSH fillBrush;
fillBrush = (HBRUSH)GetStockObject(NULL_BRUSH);
SelectObject(hDC, fillBrush);
//设置划线颜色
HPEN pen=CreatePen(PS_SOLID,1,RGB(0,255,0));
SelectObject(hDC,pen);
//设置字体
HFONT font= CreateFont(20,10,0,0,FW_THIN,false,false,false,
CHINESEBIG5_CHARSET,OUT_CHARACTER_PRECIS,
CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,
FF_MODERN,_T("宋体"));
SelectObject(hDC,font);
//drawing lines
MoveToEx(hDC,50,150,NULL);
LineTo(hDC,300,150);
//drawing text
SetBkMode(hDC,TRANSPARENT);//透明模式
SetTextColor(hDC,RGB(255,0,0));
TextOut(hDC, 400, 400, _T("人脸识别"), 4);
//drawing rectangle
Rectangle(hDC,100,200,300,400);
最后是捕获结束时的消息处理程序。
void CaptureEnd()
{
//Use the capSetCallbackOnFrame to disable the frame callback capSetCallbackOnFrame(hVideoWnd, NULL);
SelectObject(ScenehDC, AboriginaalObject);
DeleteObject((HGDIOBJ)SceneBitmap);
DeleteDC(ScenehDC);
}。