摘要: 曾经在工作当时招的各种各样的程序员。也带过各种各样的人。然后在带人的过程中发现了一些短板,所以就准备写几片程序设计之学前班的基础文章来。暂时先上一篇看看效果。要是觉得好麻烦告诉你的身边的人或者好友。要是觉得不好麻烦您一定要告诉我。
前言
在我们的日常生活用语里经常用的就一个词就是半斤八两,首先我介绍一下半斤为什么是八两.在中国以前重量的单位的16进制的,就是16两等于一斤,当然在香港还是保持着司马量的习惯.(台湾没有去过不知道).后来建国后为了和国际接轨才改成了十两一斤.当然这里不是给大家普及一这个小知识.这里要注意的是 16两为一斤.就是缝16进一.也就是16进制.看看中国是最早使用16进制的国家吧.当然不单单是16进制.为会标题说堂堂5尺爷们不到100斤呢,这里不是在吸引眼球瞎说,尺是长度单位,1米大概是3.3333尺,算一下5尺就是1.666米左右,一个1.6米左右的爷们不到160斤那纯粹是个标准身材.要是超过了那么就是太有安全感了.
数字的进制
刚刚说了16进制是逢16进一的,还有逢二进一二进制, 逢8进一的8进制, 逢12进一的12进制如时间. 逢60进一时时间的分秒等,这些在我们生活当中经常使用的.而且用了好多好多年了.
二进制
如你家开饭的时候你要去摆碗筷.如人5个人你就要拿5双筷子,而不是说要10只筷子.看看我们的老祖宗是最早使用二进制的.而且把还做了几次运算先转换成二进制,在转换成十进制.
二进制数只有0和1两个基本数字,由于大家都知道直流电只有正负两个电极所以在电器设备里(我说的是数字电器设备) 容易在电气元件中实现,所以用二进制表示非常方便,
二进制数的运算
二进制数的运算公式:
0+0=0 0×0=0
0+1=1 0×1=0
1+0=1 1×0=0
1+1=10 1×1=1
八进制
八进制也是我们国家用的最早的.我一说大家就想到了是八卦,对就是八卦,但是八卦不单单是八进制,他是八进制和二进制结合的产物.在这里不去详细讲解.这个只做了解就可以了,具体原因后面在讲.
十六进制
这个刚刚在前言里讲了不在详细讲解了. 16进制要16个字符来表示.其中 0到9表前前10个字符, 然后用字符ABCEDF这几个字符来表示 11 12 13 14 15.在计算机为了表示数据就用了16进制,这个非常好理解.如你家要是有100个有吃饭,你要准备多少个碗,多少双筷子时不是说的是 100个碗 100双筷子了,大部分说的是 要准备13(我说的是八仙桌,就是八人一桌的)桌的餐具了.看看日常生活当中又用到了8进制和二进制,而且是个正常人就会听明白.为会要说13桌不说100个碗和100双(或200根)筷子呢.主要是方便自己说的文字少了.别人一听就明白.所以计算机为了显示一些数据用的是16进制的方式去显示.如果用二进制去显示那么显示的文字就非常多一大堆的0和1不方便.
不同进制的转换
接着上面的说100个人要准备13着的问题,在这个100人变13桌的过程中您已经把10进制转换成了8进制然后在转换成了10进制,几乎是不假思索的.但是计算机就比你笨了好几个次方倍了,应为他不会转换.他的转换是人告诉的.现在来看看外国的那些猴子是怎么教计算机来转换不同的进制的
1. 十进制和二进制间的转换
将十进制整数转换成二进制整数时,只要将它一次一次地被2除,得到的余数从最后一个余数读起)就是二进制表示的数。
2. 二进制数转换成十进制数
将一个二进制数的整数转换成十进制数,只要将按权展开。
例:11011=1*24(2的4次方)+1*23(2的3次方)+0*22(2的2次方)+1*21(2的1次方)+1*20(2的0次方)=27
3. 不同进制数的转换
二进制数和八进制数互换:二进制数转换成八进制数时,只要从小数点位置开始,向左或向右每三位二进制划分为一组(不足三位时可补0),然后写出每一组二进制数所对应的八进制数码即可。
例:将二进制数(10110001.111)转换成八进制数:
010 110 001. 111
2 6 1 7
即二进制数(10110001.111)转换成八进制数是(261.7)。反过来,将每位八进制数分别用三位二进制数表示,就可完成八进制数和二进制数的转换。
二进制数和十六进制数互换:二进制数转换成十六进制数时,只要从小数点位置开始,向左或向右每四位二进制划分为一组(不足四位时可补0),然后写出每一组二进制数所对应的十六进制数码即可。
例:将二进制数(11011100110.1101)转换成十六进制数:
0110 1110 0110. 1101
6 E 6 D
即二进制数(11011100110.1101)转换成十六进制数是(6E6.D)。反过来,将每位十六进制数分别用三位二进制数表示,就可完成十六进制数和二进制数的转换。
八进制数、十六进制数和十进制数的转换:这三者转换时,可把二进制数作为媒介,先把代转换的数转换成二进制数,然后将二进制数转换成要求转换的数制形式。
数据的编码----之MS的崛起
也许你听过MS,或者没有听过MS,但是或多或少你都用过MS的东西.如他的操作系统windows,他的办公软件 office他的浏览器IE等,但是你也许不知道MS这艘航母是怎么从当时的地下车库一步一步的搬进他现在的大厦的.
先我来啰嗦一下,说说前面的8进制,本来是我们的老祖宗玩的非常溜的,但是由于这个8进制在曾经很长的一段时间内制约了中国的计算机发展,乃至于全球的(个人是这样认为的).为什么呢?现在我来慢慢和你道来:
大家都知道,我们的电脑全的全称叫电子数字试计算机.看看电子数字试这几个子,电子我们初中的物理老师和化学老师讲了只有正极和负极.那么数字试是什么意思想,正极和负极可以表示多少个数字呢?好吧我也不知道,高中数学课上开小差了.那我们现在来一个非常完美的假设
有两个电极如下(用0表示- 用1表示+)
电极A电极B结果
00第一种情况
01第二种情况
10第三种情况
11第四种情况
聪明的您肯定一下就算出来了 2*2=4种情况了.是的没有错就是两个位可以表示的信息非常有限就只能表示4种信息.当然计算机是国外的科学家发明的.他们可能都不会中文,因为他们用的是英文说的是英语.我们看看因为是26个字母.包括大小些才52个 在加上一0到9十个常用的数字.才62个,想想还有一写标点符号,有多少个初中的英语老师没有告诉我,我就假设一下吧,算30个吧应该差不多了吧.这样的话62+30才90多个不到100个.数学好的你肯定就知道了,要多少个位就可以表示完这100来个的信息了.对7个位就可以表示完了.7位组合下来可以表示128个信息.但是中国有句老话叫孤阴不生,独阳不长.这话的什么意思呢.自己去google里百度.我只知道让你去提水,你肯定提2的倍数是最优的,因为不是二的倍数的话有一次是单的.电器设备里的电极也是成双成对出现的,计算机里的最基本的单位是bit(位),但是美国的那些科学家们只考虑了他的使用环境,就把计算机的的一个字节定义成了8个位.为什么是8个呢.因为表示他们的单词和数字以及标点符号等这些有7个位足够了.所以他们就定义出来了一个字节8个位.
1个字节=8个位
1k=1024个字节
1M=1024K
1G=1024M
1T=1024G
美国信息交换标准代码
据说long long a go. 电脑不像现在的这样(废话). 现在我可以在我电脑上编辑好一份文件然后发给你,你就可以在你的电脑上打开看了甚至编辑了.要是在很久以前的,那些用电脑的人看到了就会觉得非常非常神奇.应为以前的电脑在a电脑上编辑的文件只能在a电脑上看.不能在b电脑上看.两边电脑的系统信息编码不一样.然后MS就出来.比尔该死借助他妈是IBM销售部的部长.他就写了一套软件系统.基本上和当时市面上用的功能是一模一样的,但是他比其他的dos多了一个功能.就是在任何一台安装有MS_DOS的IBM兼容机上编辑的文件可以在其他任何一台安装MS_DOS的IBM兼容机上打开并且编辑.这样使得他的系统大买,也让IBM的PC机也大买.后来你懂得了,有钱,有个好妈妈.抱上了巨人(还是国际巨人)的大腿.很会做销售和市场(废话,当妈就是销售精英),还懂技术的人.想不挣钱都难.所以他就二话不说.从学校和老师说了句我妈妈叫我回家数钱去.就辍学了.
美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,用于基于文本的数据。起始于50年代后期,在1967年定案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,它已被国际标准化组织(International Organization for Standardization, ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母。
标准表
(图片来源百度百科)
汉字编码
在计算机中一个汉字通常用两个字节的编码表示,我国制定了“中华人民共和国国家标准信息交换汉字编码字符集(基本集GB2312—1980)”,简称国标码,是计算机进行汉字信息处理和汉字信息交换的标准编码。在该编码中,共收录汉字和图形符号7445个,其中一级常用汉字3755个(按汉语拼音字母顺序排列),二级常用汉字3008个(按部首顺序排列),图形符号682个。
在GB2312—1980中规定,全部国标汉字及符号组成一个94×94的矩阵。在此矩阵中,每一行称为一个“区”,每一列称为一个“位”。于是构成了一个有94个区(01~94区),每个区有94个位(01~94位)的汉字字符集。区码与位码组合在一起就形成了“区位码”,唯一地确定某一汉字或符号。
区位码的分布规则如下:
1)01~09区:图形符号区。
2)10~15区:自定义符号区。
3)16~55区:一级汉字区,按汉字拼音排序,同音字按笔画顺序。
4)56~87区:二级汉字区,按偏旁部首、笔画排序。
5)88~94区:自定义汉字区。
(2)汉字输入码
所谓汉字输入码就是用于使用西文键盘输入汉字的编码。每个汉字对应一组由键盘符号组成的编码,不同的汉字输入法其输入码不同。汉字输入码也称外码。常见的汉字输入编码方案可分为如下4类:
1)数码:用数字组成的等长编码,典型代表有区位码、电报码。
2)音码:根据汉字的读音组成的编码,典型代表有全拼码和双拼码。
3)形码:根据汉字的形状、结构特征组成的编码,典型代表有五笔字型、表形码。
4)音形码:将汉字读音与其结构特征综合考虑的编码,典型代表有自然码、首尾拼音码。
(3)汉字内码
无论用户用哪种输入法,汉字输入到计算机后都转换成汉字内码进行存储,以方便机内的汉字处理。汉字内码是采用双字节的变形国标码,在每个字节的低7位与国标码相同,每个字节的最高位为1,以与ASCII码字符编码区别。
(4)汉字字形码
汉字字形码(汉字输出码)是将点阵组成的汉字模型数字化,形成一串二进制数称为汉字字形码,其主要用于输出汉字。输出汉字时,将汉字字形码再还原为由点阵构成的汉字,所以汉字字形码又被称为汉字输出码。
汉字是一种象形文字,每一个汉字可以看成是一个特定的图形,这种图形可以用点阵、 轮廓向量、骨架向量等多种方法表示,而最基本的是用点阵表示。如果用16x16点阵来表示 一个汉字,则一个汉字占16行,每一行有16个点,其中每一个点用一个二进制位表示,值“0” 表示暗,值“1”表示亮。由于计算机存储器的每个字节有8个二进制位,因此,16个点要用 两个字节来存放,16x16点阵的一个汉字字形需要用32个字节来存放,这32个字节中的信息 就构成了一个16x16点阵汉字的字模
Unicode
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
在最后打个小广告:
注意:本文属于原创。首发于自己的博客: http://caipiao365.vip/article/25
欢迎转载,转载请保留上面的链接谢谢合作。版权保留。