计算机基础(一)

1、计算机组成

        计算机(computer)俗称电脑,是现代一种用于高速计算的电子机器,可以进行数值计算,又可以进行逻辑判断,还具有存储记忆功能,且能够按照程序的运行,自动、高速处理数据。

        计算机的组成包括硬件系统和软件系统两大部分。

        硬件系统主要包括了运算器、控制器、存储器、输入设备和输出设备。硬件系统是构成计算机各个功能部件的集合,是看的见、摸得着的是实实在在存在的物体,是计算机完成各项工作的物质基础。

        软件系统主要包括了系统软件和应用软件两部分,系统软件就是包含了操作系统以及网络软件组成的集合,应用软件则是包含了QQ、微信等大量用户经常使用的软件。因此,软件系统是与操作相关的程序以及所有相关的文档和数据的集合。

2、计算机语言的发展

        计算机语言的发展历程可以简单划分为以下几个阶段:机器语言、汇编语言和高级计算机语言。

      2.1 机器语言

        机器语言是计算机唯一能识别并直接执行的语言,每一条计算机指令均由一组0、1数字按一定的规则排列组成。若要计算机执行一项简单的任务,需要编写大量的这种指令。这种有规则的二进制数组成的指令集就是机器语言

        优点:计算机直接识别并处理,运行速度最快。

        缺点:非常底层且难以理解和记忆。

      2.2 汇编语言

        汇编语言出现在20世纪50年代末,它用比较容易识别、记忆的助记符替代特定的二进制串。汇编语言的一条汇编指令对应一条机器指令,与机器语言性质上是一样的,只是表示方式做了改进。其可移植性与机器语言一样不好。总之,汇编语言是符号化的机器语言,执行效率仍接近于机器语言,因此汇编语言至今仍是一种常用的软件开发工具。通过这种助记符,人们就能较容易地读懂程序,调试和维护也更方便了。但这些助记符号计算机无法识别,需要一个专门的程序将其翻译成机器语言。

        优点:一定程度上解决了机器语言的缺点。

        缺点:低级语言编写效率低,依赖于硬件。

      2.3 高级计算机语言 


        高级语言是计算机语言发展史上的一个里程碑。高级语言的出现大大提高了编程的效率,降低了编程的难度。自90年代以来,面向对象编程(OOP)的概念逐渐普及,Java、C++等面向对象的编程语言迅速流行。进入21世纪,互联网和移动设备的普及催生了一批新型的编程语言,如JavaScript、Python、Ruby等。这些语言注重开发效率、易用性和网络安全性,为互联网和移动应用的发展提供了强大的支持

        优点:易于理解与阅读,不依赖于硬件,开发效率高。

        缺点:执行速度最慢,占用空间多。

3、进制的相关知识点

      3.1 什么是进制

        进制就是人为规定符合某种规则的计数方式。

        规则:X进制——逢X进一、借一当X

        举例:

        生活中的进制:10进制、60进制、7进制、12进制

        计算机中的进制:2进制、8进制、16进制

      3.2 进制的三要素

进制

数码(基本组成位)

基数

位权

十进制

0 1 2 3 4 5 6 7 8 9

10

.......10^2 10^1 10^0 10^-1 10^-2 10^-3.....

二进制

0 1

2

.......2^2 2^1 2^0 2^-1 2^-2 2^-3.....

八进制

0 1 2 3 4 5 6 7

8

.......8^2 8^1 8^0 8^-1 8^-2 8^-3.....

十六进制

0 1 2 3 4 5 6 7 8 9

a b c d e f

16

.......16^2 16^1 16^0 16^-1 16^-2 16^-3.....

      3.3 进制的表示方式

进制

前缀法

后缀法

(易识别错误,不选用)

十进制

1234

1234D 1234

二进制

(C语言标准中并不直接支持,但某些编译器或扩展可能支持)

0b110 0B110

110B

八进制

01234 【python中 0o1234】

1234O

十六进制

0x1234 0X1234

1234H

      3.4 进制的转换

        我们使用【高级语言】写代码,计算机能直接识别并处理吗?——不能

        需要将其转换成二进制语言,才能被计算机直接识别处理,计算机处理完的结果是二进制,有需要将其转换成人能理解的。

        3.4.1 十进制转N进制

        方法1:除N取余,逆向排列

        例如:25转二进制:25 = 0b11001

        25转八进制:25 = 031 (0o31)

        方法2:位权展开相减法

        32 16 8 4 2 1

        3.4.2 N进制转十进制

        方法:位权展开相加法

        3.4.3 二进制与八进制转换

        二进制转八进制 三合一

        八进制转二进制 一拆三

        例如:

        0b1110110110 = 0o(1666)

        0o567 = 0b(101110111)

        3.4.4 二进制与十六进制转换

        二进制转十六进制 四合一

        十六进制转二进制 一拆四

        例如:

        0b110110110 = 0x(1b6)

        0xabc = 0b(101010111100)

      3.5 二进制的原码 反码 补码

数据在存储的时候,有正数也有负数,就涉及到原码、反码、补码,因为计算机中的数据计算都是以【补码】形式参与的。

原码:给人看的,直接转换得到的

反码:用来做原码与补码之间转换的中间者

补码:给计算机看的

正数:原码 = 反码 = 补码 = 自身二进制

负数:

原码:最高位代表符号位【0正1负】,其他位是自身二进制

反码:最高位代表符号位【0正1负】,其他位对原码按位取反【0变1 1变0】

补码:最高位代表符号位【0正1负】,其他位对反码加1

      3.6 位运算

位运算符

二进制

位与 &

位或 |

异或 ^

取反 ~

左移

右移 >>

1&0=0 1&1 = 1 0&1 = 0

位与 全1为1 有0则0

1|0=1 0|1=1 0|0=0 1|1=1

位或 全0为0 有1则1

1^0=1 0^1=1 1^1=0 0^0=0

异或 相同为0 不同为1

~1=0 ~0=1

110110

110110>>2 = 00 1101

你可能感兴趣的:(青少年编程)