计算机基础知识

计算机基础知识

编程的基本概念

通俗讲,就是写代码。程序员使用特定的语法 + 数据结构组成的代码去告诉计算如何执行任务的过程。

"编程"一词的由来

“编程”一词延伸于“杰卡德编织机”

编程语言的分类

机器语言

    a) 计算机底层只能识别0和1,那么由0和1描述的指令称为机器指令;
    b) 所有机器指令组成的集合称为机器语言;
    c) 由机器语言编写的程序称为目标程序;
    d) 只有目标程序才能被计算机直接识别和执行;
    e) 机器语言属于低级语言,是最底层的语言;
    f) 除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了;
    g) 机器语言是微处理器理解和使用的。

汇编语言

	a) 与机器语言相比并没有实质的区别,只是将机器指令换成了便于理解、记忆和使用的单词,比较底层;
    b) 由汇编语言编写的程序称为汇编程序
    c) 用汇编语言所能完成的操作不是一般高级语言所能够实现的,
       而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言

由高级语言所编写的程序不能直接被计算机所识别,必须转换成机器语言才能被执行,而转换方式决定了高级语言种类之间的本质区别。

分类:
    ①编译型
		C, C++, Go, Delphi
        将代码一次性编译成目标代码(*.obj),生成可执行文件,可以脱离语言环境独立使用,所以使用方便、运行速度快
        如果中间代码出现错误,修改后,只能从头开始再翻译,所以开发效率低
        在某个平台上开发的程序放到另一个平台上,不一定能正常运行,所以跨平台性差

    ②解释型
		C#, Python, JAVA, JavaScript, Ruby, PHP
        将代码交给解释器逐行翻译成目标代码,并且逐行执行,类似生活中的”同声传译“
            优:
                开发效率高
                可以跨平台
            劣:
                运行速度慢
                依赖解释器

计算机的认识

计算机是用来计算和通讯的;
计算机,俗称‘电脑’,电子人脑。能够进行数值计算、逻辑计算以及记忆存储功能, 能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
通俗讲: 最初发明计算机,是为了进行科学计算,只要能进行数据处理(计算、运算)的,都可以称之为计算机,比如:计算器。

计算机的基本组成

1. 主板
2. CPU
3. 内存
计算机最底层是 电子电路,计算机只能识别高电频 和 低电频,也就是1、0

组装计算机

CPU 看主频、核心数
内存 看大小、型号(一般就DDR4、显卡用DDR5)、主频(海盗船、玩家国度)
显卡 看显存、型号(比如:N卡 GTX 1080  红色的数值越高越厉害、蓝色的数值代表第十代产品,N卡玩游戏; A卡作图)、位宽(数值越高代表数据进出量越高,则性能越好)
硬盘 (反正市面上,能买到三星正品的机率很小,而且也特别贵)

计算机实际上只认识加法

首先来了解,机器数和真值
1,	机器数
一个数在计算机中的二进制形式,叫做这个数的机器数。机器数是带符号的,最高位存放符号,正数为0,负数为1
例: +3,00000011;
    -3,10000011
    
2,	真值
将机器数的符号位0和1符号化成+和-
例: 00000011的真值 = +0000011 = +3,
    10000011的真值 = -0000011 = -3 

再来了解,原码、反码和补码
	首先,因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,选择对真值区域的加减。
	但是对于计算机,加减乘除已经是最基础的运算,要设计得尽量简单,计算机辨别‘符号位’显然会让
	计算机的基础电路设计变得十分复杂!于是人们想出了将符号位也参与运算的方法。
	我们知道,根据运算法则减去一个正数等于加上一个负数。即:1 - 1 = 1 + (-1) = 0,
	所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了
	
原码、反码和补码都是有符号的用二进制表示数的方法,均由符号位和数值位构成
	1,	原码
		原码是由0和1表示的符号位加上真值的绝对值,即用第一位表示符号,其余为表示值。
		例: -3 = 1[-0000011] = 1000 0011
		    +3 = 0[+0000011] = 0000 0011
	    原码是人脑最容易理解和计算的表示方式
	    
	2,	反码
		正数的反码是其原码本身
		负数的反码是在其原码的基础上,符号位不变,其余各个位取反
		-3 = 1[-0000011] = (1000 0011)原 = (1111 1100)反
		+3 = 0[+0000011] = (0000 0011)原 = (0000 0011)反
		
	3,	补码
		正数的补码就是其本身
		负数的补码就是在反码的基础上 + 1
		-3 = 1[-0000011] = (1000 0011)原 = (1111 1100)反 = (1111 1101)补
		+3 = 0[+0000011] = (0000 0011)原 = (0000 0011)反 = (0000 0011)补
		
在计算机系统中,数值一律用补码来表示(存储)。
	主要原因:
	1. 使用补码,可以将符号位和其它位统一处理;
	2. 其他运算也可按加法来处理;
	3. 另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃;
	4. 补码与原码的转换过程几乎是相同的。

" 八进制 " 引入

小型机引入了**八进制**

计算机系统设计的‘开山鼻祖’

巴贝奇,计算机系统设计的‘开山鼻祖’

世界公认的第一名软件工程师

Ada(阿达, 女性),世界公认的第一名软件工程师

计算机之父

计算机之父:冯洛伊曼
基本思想:
		1. 计算机内部采用二进制;
		2. 顺序执行程序;
		3. 计算机由控制器、运算器、存储器、输入设备以及输出设备五大部分组成

莱布尼茨提出" 二进制 "说法之一

莱布尼茨独立发明微积分与牛顿齐名,又对计算机提出‘二进制’的设计思路。

其中有一个说法,他提出‘二进制’的思路,来源于中国。
公元1700左右,莱布尼茨的一位友人送于他一幅画,名为‘八卦’,是宋朝人邵雍摹绘的一张‘易图’。
莱布尼茨用放大镜仔细观察八卦的每一卦象,发现它们都是由阳(-)和阴(--)两种符号组成。
若认为阳为‘1’,阴为‘0’,八卦恰好组成了二进制000到111共8个基本序数。
正是在中国人睿智的启迪下,莱布尼茨最终悟出了二进制之真谛。
虽然,他自己设计的计算机用的还是十进制,但他率先系统提出了二进制数的运算法则,
直到今天,二进制数仍然左右着现代电脑的高速运算。

" BUG " 由来

世界上第一台大型计算机Mark 1,为它编写程序的是一位女数学家
格雷斯·霍波(G· Hopper)(第三名程序员)。
有一天,她在调试程序时出现了故障,拆开了继电器后,发现有只飞蛾夹扁在触点中间,
从而‘卡’住了机器运行。于是,Hopper诙谐地把程序故障统称为‘臭虫’(bug),
而这一奇怪的‘称呼’,后来成为计算机领域的专业行话,调试程序就叫做‘Debug’。(反bug)

世界上第一台电子计算机

1946年2月14,西方情人节,美国军方定制的世界上第一台电子计算机‘ENIAC’(电子数字积分计算机)
在美国宾夕法尼亚大学问世了。是美国奥伯丁武器试验场为了满足计算弹道需要而研制的。

进制转换

https://blog.csdn.net/qq_32617703/article/details/101202479

进制中的基数、数码、位权

基数:例如十进制,基数为10
数码:例如十进制,0、1、2、3、4...就是十进制的数码
位权:例如十进制,从低位到高位(右 至 左) 依次表示为10的0次方、10的1次方...

计算机中的单位

0或1所占的空间单位为bit(比特),是计算机中最小的表示单位
8bit = 1Bytes (字节),是计算机中最小的存储单位
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
1ZB = 1024EB
1YB = 1024ZB
1BB = 1024YB

杂谈

(1)google: 10100
(2)google-plex:10google	
(3)宇宙直径:约 1026米
(4)宇宙粒子数:约 1080个
(5)地球沙粒数:约 7.5x1018
(6)宇宙大爆炸后(准确说是,大爆炸后的普朗克时间)的宇宙密度:1096千克/立方米
(7)1英寸 = 2.54厘米
(8)球的体积:4/3 * PI*R3
(9)圆的面积:PI * R2
(10)三角形的面积:底 * 高 * 0.5
(11)黄金比例:长边比短边,1.618;短边比长边,0.618
(12)毕达哥拉斯定理(勾股定理)计算笛卡尔平面上的两点之间的距离
		A: (x1, y1)	B: (x2, y2)
		dist = sqrt((x1 – x2)2 + (y1 – y2)2)
(13)二战,最后以美国、苏联、中国、英国等反法西斯国家和世界人民战胜侵略者而终止。
其终止的真正的原因是美国向日本的广岛和长崎投掷了两颗原子弹。但本来是投掷到日本东京的。
中途出现了误差,为了计算精确,美国组织科学研制计算机。
上一篇:三、运算符


下一篇:力扣刷题记录#字符串#简单#696计数二进制子串