计算机硬件指的是组成计算机的各种物理设备,每一个物理设备都有不同的功能,稍微懂一点硬件的一些常识,把这些硬件组装到一起就是一台电脑了。有兴趣也可以玩一些电脑的diy组装。
计算机软件分为系统软件和应用软件,下面简单介绍一下他们的区别。
系统软件
系统软件一般指的就是操作系统,它运行在硬件之上的一种系统程序,如我们用到的windows、苹果电脑中的macOS、以及手机端的Android和IOS等,这些都是系统软件。
应用软件
应用软件是以操作系统为平台,针对某一个特定需求开发的程序。如微信,淘宝等,在不同的操作系统上都有对应版本的App。
安装软件分为绿色版和安装版,下面以windows系统为例简单介绍一下他们在安装和卸载上有什么不同。其他的操作系统会有所不同
安装版软件
从官网上下载安装包,一般是一个.exe文件,其实就是一个可以自解压的文件集合),运行安装包时,会将此软件的所有文件释放到硬盘的指定路径下(安装路径)、并在Windows系统的注册表中注册、修改系统配置一般也会创建快捷方式等等。
安装版软件在卸载的时候,一定要在控制面板中找到程序卸载正常卸载,或者使用第三方的软件管理工具,像360软件管家等。
绿色版软件
绿色版软件一般是给你一个.zip的压缩包,用解压软件解压就可以使用。如果要卸载也很方便,直接删除就可以了。
计算机中所有的数据都是采用二进制进行存储的,由0和1组成,每8个二进制位是一个字节
二进制和十进制对比如下:
十进制 二进制
0 00000000
1 00000001
2 00000010
3 00000011
4 00000100
5 00000101
6 00000110
7 00000111
注意:除了数字可以采用二进制,其他的字符、图片、声音、视频等都是采用二进制进行存储的
除了二进制还有八进制、十进制、十六进制的计数方式。进制只是一种计数方式,因为我们生活中对使用十进制已经很习惯了,所以对其他进制并不是很容易接受。下面我们采用列举的方式来感受一下分别用十进制、八进制和十六进制数数是怎样的。
十进制数数
十进制使用0、1、2、3、4、5、6、7、8、9这十个数字表示,逢10进1
0、1、2、3、4、5、6、7、8、9
10、11、12、13、14、15、16、17、18、19
20、21、22....
八进制
八进制使用0、1、2、3、4、5、6、7这八个数字表示,缝8进1
0、1、2、3、4、5、6、7
10、11、12、13、14、15、16、17
20、21、22、23、24、25、26、27
30、31、32....
十六进制
十六进制使用0、1、2、3、4、5、6、7、9、a、b、c、d、e、f这十六个数字表示,缝16进1
0、1、2、3、4、5、6、7、9、a、b、c、d、e、f
10、11、12、13、14、15、16、17、18、19、1a、1b、1c、1d、1e、1f
20、21、22、23、24、25、26、27、28、29、2a、2b、2c、2d、2e、2f
前面说过计算机中所有的数据都是采用二进制来表示的,那么我们平时使用电脑也从来没有看到0101这样的二进制数据呀?是这样的,每一个文件其实都是有对应的二进制编码的,而对应能打开这个文件的软件其实就起到了解码的作用,把文件中的二进制编码转换为人能看懂的信息。不管是文字、图片、视频、音频等都会有对应的编码和解码这两个动作。这里我们就说一下字符(也就是文字和符号)是如何存储的。
为了让计算机能够显示字符,美国人发明了一套《美国信息交换标准代码》简称ASCII码表,它为26个大小写字母,常用的标点符号,以及一些特殊符号等,每一个字符都编了1个字节组成的二进制码。随着计算机的在全世界的普及只能显示英文肯定不行,所以后来各个国家也出了针对各个国家问题的编码表,我们用得中文简体的操作系统用的就是GBK的编码表。但是这有造成一个问题,各个国家的编码表不一致,可能一个文件在这里打开是正常的,然后再另一台电脑上打开就是乱码了。为了解决这个问题后来就有了UTF-8编码表,它把全世界所有国家的文字进行的统一编码,这样更利于国家化。
下面是ASCII编码的部分截图
计算机中每一个数据都会占用一定的内存空间,为了让内存空间利用更加合理。在程序中吧数据分为各种数据类型,每一种数据类型能表示的数据范围不一样,占用的内存空间也不一样。比如整数就有4中,byte、short、int、long,它们占用的内存空间分别是1个字节、2个字节、4个字节、8个字节。
数据类型转换分为自动转换和强制转换
自动转化:从小到大的转化,不影响数据的大小
1. byte、short、char之间不转化,参与运算会自动转化为int
2. 有多种数据类型运算,结果以数据类型大的为准
强制转换:从大到小的转化,可能影响数据的大小
byte a=3;
byte b=4;
byte c=a+b; //错误:byte 在参与运算会自动转化为int,其结果页是int类型。
byte d=(byte)(a+b); //正确:a+b的结果为7,在byte范围内,所以可以强制转化。
byte e=(byte)128; //错误:语法上没问题,但是改变了数据大小。