讲课大致内容
人类社会中以1-10来计数,但是计算机却以2进制来进行交流:01。这些称为位。
而人类对计算机的物理输入(控制方法),是电。
拿灯泡举例
有无电流,控制着他的开和关,对应着计算机的0和1.那这样的话我们怎么数到比1高的数呢? --可以用更多的情况。
如用三个灯泡,这样总共就有8种情况,能数到7。(从0计数的原因,是因为0也是有意义的,当一切都结束的时候)
而计算机中实际使用的是:晶体管(小开关)。数以百万计的小开关。
123
这是10进制我们平时用的123,这个数怎么得来的?1次100,二次10,三次1.
abc 而里面的基数是10,因为有0-9,10个数字。a位对应10得2次,b位对应10的1次。
而在计算机中,只有0,1.所以基数是2。001就是1,里面含有三个位(bits),每个位元可以是0-1.而此时相当于最右边的开关打开了。(此时我们知道了计算机的这项类似于灯泡的能力,而它可以用来计算数字。--当然早期的计算机确实是如此设计的)
但怎么利用这项功能,表达字母呢? --利用二进制的数字分别对应了每个字母。如:规定A就是1,B就是2
而事实上规定的是A对应了十进制的65,也就是01000001.此时计算机要做的只是注意程序类型(什么情况用65,什么情况用A)
而这种65对应A,66对应B的规则被称为ascll码。
当你手机接受别人发的消息 HI!时,(01001000 01001001 00100001)从技术上来讲接受的时一种比特模式,某种频率。
以前的计算机为了节约资源,都是用7位,但现在是八位,此时你总共接受了24位bits。
因为bits太小了,产生了bytes,字节。
但8个位能表示多少符号呢?256种。但能表达的最高值,是255。但是那些地方口语,表情字符该怎么表示呢(超过256的)?(实际上笑脸表情对应的是128514十进制数)
其实现在世界上ascll已经从八位发展到16 或24甚至32.还发明了一种Unicode系统,支持英语,中文各个语言。
那么如何表达颜色呢?(如笑脸上的黄色)
给不同的颜色分配不同的数字。RGB
还是72 73 33.
这些在聊天工具中表达的可能是HI!,但在ps等围绕图形的软件中,代表一些颜色。
红绿蓝 ,每个颜色是8各位,而当这些颜色不断组合在一起 ,能产生不同颜色。假如成了黄色的时候,黄色就是24位。
而我们一般看到的屏幕中的图像,都是由一个个带颜色的小正方形组成的(像素)
同理,视频的话就是,多张图片的快速组合。音乐的话,也可以用数字来代表每个音符和节拍。
因此,不同文件的各个扩展名,可以让计算机知道这数字代表什么,表现什么(大部分人同意用这种格式来处理这些0,1)
那么我们的输入(数字,图像,颜色)是如何通过黑匣子,变成一个个我们想要的输出(想解决的问题)呢?。
---算法(algorithm):对计算机的一步步指令。
生活中的算法
如在一本1000页电话本里寻找自己的电话,可以一面一面的查找,可以两面两面的找(可以大概确定位置,在周围找到),也可以一半一半的查找,
1000,500,250(看自己的名字在不在这个区,如果名字c开头,而500面是M区,则可以只看前500面)。。。。,
虽然都可行,但这几种方法所消耗的时间(资源)是完全不一样的。
选取第三种方法,他的步骤就是:
打开书
翻开这书中间
如果人在这上面
打他电话
如果不在,在前面
翻开左侧的中间部分
在后面
。。。。
而编程,就是使用这些算法以及将他们(步骤)翻译成计算机语言。
打电话,翻开,退出等这些动作,在计算机里,就是一个个函数。决定是否使用这一种解决方法,在计算机里称为布尔表达式。。。(还有loop循环等等)
我们从这种伪代码过渡到真正的代码,要用到语言。(下节课介绍c,老式的基于文本基于键盘的语言)