计算机基础知识
存储
计算机是二进制进行存储和计算的,二进制就是逢二进一,所以存储的只有0和1,任何文件都是01串,至于怎么用01串表达各种形式的文件,就需要自行去了解各种协议了,就是大家怎么约定。计算机的最小存储单位是比特位,就是一个0或者1,系统会对存储单位做编号,0,1,2,3…,要查询的时候就通过这个编号去找。这个编号就是内存地址,后面简称地址。当我们需要存储的时候系统也会给我们分配一个地址,我们就可以往里面写数据。
计算
我们平常熟悉的是加减乘除运算,这些运算都可以用与、或、非、异或四种位运算来表达,这四种运算对应四种基本门电路,感兴趣可以查阅相关知识。CPU就是通过这四种基本运算实现我们各种复杂功能,准确的说就是四种基本门电路。CPU只做计算,例如要计算两个数相加,需要把两个数从内存中取出送到CPU的寄存器,然后下达相加指令,然后把计算结果送回内存。寄存器是CPU计算用的临时容器,CPU只能操作寄存器上的内容,每个寄存器都有专门的职责,例如上文说的加减乘除运算的源操作数,计算结果(目的操作数)都有专门的寄存器存储。
高级编程语言
CPU制造商只提供基本的汇编语言,汇编语言直接操作寄存器、内容地址、系统堆栈、系统中断等。编写起来非常耗时,例如一个加法就需要先把源操作数放到寄存器再执行加法,最后取出结果。汇编语言的好处在于不用去操作最底层的门电路,而且可以做任何你想做的事,如果汇编不能做到的事,别的编程语言也做不到。高级编程语言就是在汇编上发展出的更高级的语言,不用亲自去操作寄存器、内存等系统底层的东西,编写起来更符合人的习惯而不是计算机的设计。当然计算机不能识别高级语言,需要编译器做翻译,翻译成汇编,再到最终的机器语言。
编程基础知识
代码运行
cd D:/目录名
D:
python 脚本名
变量
# 声明变量a,并赋值为1。系统会为a分配一个地址,并存入1
a = 1
# 输出a的值到屏幕,当用到a时,系统会通过地址找到
print(a)
所以变量的意义在于在系统中占一块内存,并起个名字方便再次使用
运算
a = 1
b = 2
c = a + b
print(c)
除了+,常用的还有减法- 乘法* 除法/ 整除// 取余数%
函数
def add(a, b):
c = a + b
return c
print(add(1, 2))
高级编程语言都有公共的函数库,由开发者共同开发维护,使用的时候导入相关库就可以使用
条件判断
def is_odd(a):
if a % 2 == 0:
return 0
else:
return 1
print(is_odd(17))
循环
def acc(n):
'''
计算从1加到n
'''
result = 0
#range(a,b) 生成a,a+1....b-1的数列,一般函数的区间参数都是左闭右开
for i in range(1,n+1):
result = result + i
return result
print(acc(100))
另一种写法
def acc(n):
'''
计算从1加到n
'''
result = 0
while n > 0:
result = result + n
#对自身做操作的可以简写,这里就是 n -= 1
n = n - 1
return result
print(acc(100))
函数递归
def fb(a):
# or表示满足一个条件即可, and表示都得满足
if a == 1 or a == 2:
return 1
else:
return fb(a-1) + fb(a-2)
print(fb(10))
这是一个递归求解斐波拉契数列的例子