编程基础
WHY
为什么要学编程基础: 谨记你先是一个程序员,其次才是前端。
为什么要学编程基础:为了不夜郎自大,为了掌握更多的知识面
STAY HUNGRY , STAY FOOLISH.
HOW
1,硬件与软件:计算机的运行原理 (编码)
2,最大的软件:操作系统
3,自己写软件:数据结构&算法(数据结构与算法分析)
4,多人写软件:软件工程(代码大全)
计算机:二进制的世界
好奇心是探索的原动力,我们都知道与中国人打招呼要用“你好”,与美国人打招呼要用“hello”
与法国人打招呼要用“Bonjour”,那么我们该如何与计算机打招呼呢?
计算机只能存储0和1,所以想和计算机打招呼,就要用【1110 0100 1011 1101 1010 0000 1110 0101 1010 0101 1011 1101】
一、如何存储0和1
存储:1就充电,0就不充电
读取:电量大于50%为1,电量小于50%就是0 (不停的刷新充电)
二、如何存储数字
计算机只存储0和1,所以想要存储数字就要转换成二进制。
十进制变二进制 (转换成n1*2^x+n2*2^x的模式)
37(10)=3*10^1+7*10^0=32+4+1=1*2^5+0*2^4+0*2^3+1*2^2+0*2^1+1*2^0=100101(2)
扩展:负数以补码的形式存储 小数点以浮数点形式存储
三、如何存储字符
依照ASCII美国信息交换标准代码
比如想要存储a→97(10)→1100001(2)
四、如何存储中文
ASCLL美国信息交换标准代码包含了数字字母等字符128个,但是没有汉字,所以我国就推出了GB2312中国国家标准简体中文字符集(包含6763个汉字及682字符)。
根据需求的增加,微软后推出了GBK字符集。
五、如何存储所有字符
unicode字符集将全球字符编号存入了计算机。
六、如何存储unicode
截止到2016年6月时,Unicode 总共有 128237 个字符。在存储这么多字符的情况下,8位显然达不到要求,因此Unicode 使用了 4 个字节(32位)来存储一个字符。
比如存储a→1100001(2)→00000000 00000000 00000000 01100001
性价比非常低,于是UTF-8应运而生。
UTF-8不是字符集,而是一种编码方式。
00000000 00000000 0000000 01100001→01100001
编码方式:00000000 00000000 00000111 11111111→11011111 10111111
扩展:Javascript使用了unicode字符集,却没有使用UTF-8编码。
【 因为JS 1995年诞生,而UTF-8 1999年诞生 详情】
JS使用了USC-2编码,后果就是ES5无法表示\UFFFF之后的字符。