数据为什么需要类型?
数字与字符串
- 都是一,为什么要区分1和’1’(数字1和字符串1)
数字1存储形式就是1
而字符’1’存储形式是49 - 计算机如何知道存的是数字1还是字符串’1’
通过文件后缀(如:.txt 或 .xlsx)
文本格式(字符串)、表格(数字)
1.两者功能不同
- 数字是数字,字符串是字符串
- 数字能加减乘除,字符串不行
- 字符串能表示电话号码,数字不行
因为数字不能以0开头,任何一个以0开头的数字都要把0省略
而电话号码很多 010-11111,电话号码里面还可能有字母(有的国家)
2.存储形式不同
- JS中,数字是用64位浮点数的形式存储的
- JS中,字符串是用类似UTF8形式存储的(UCS-2)
3.如何存数字
3.1 十进制转二进制即可(只能存0和1)
- 10转2
31编程二进制:把以下式子前面的数字算出来即可(不断尝试)
所以31(十进制)= 01111(二进制)
- 2转10
上面反向即可,注意有个0次方,不要弄掉了
3.2 十六进制
二进制写起来太慢了
- 从左往右每四个改写成一位
- 记住 8 4 2 1 分别对应以上每四个为一个单位的 X X X X
- 得到 3,12,5,10;把大于9的数字改为ABCDEF
- 于是得到3C5A
- 可以用计算机的程序员模式
- OCT表示八进制,DEC表示10进制
4.如何存字符
如何存储:a b c 1 2 3
答:用编号表示
把键盘上的所有符号都编了号,用0~127表示所有符号(2的7次方个)
所有编码都兼容这个顺序
- 0~31号都是特殊字符
- 0表示结束字符
- 10表示换行
- 13表示回车
- 32表示空格
- 33~47表示标点
- 48~57表示数字字符(0用48表示)
- 65~90表示大写字母(65表示A)
- 97~122表示小写字母(97表示a)
- 127表示删除键(DEL)
5.如何存中文
还是编号
5.1 中国国家标准局来编,名称为[国标2312](第一份中国人用的字符编码)
- 一个16进制数是4个0/1位
- FFFF就是4x4=16位,也就是2个字节
- 国标是16位,2个字节
- 如:[你]的GB2312编号为C4E3
生僻字没办法存储,是*
5.2 GBK国标扩
收录了生僻字,同时兼容GB2312
5.3万国码 Unicode
一次性解决所有文字问题
6.Unicode
6.1 优点
- 收录了13万字符(大于16位,至少3个字节),全世界通用
- 以后还会继续扩充
6.2 缺点
- 两个字节不够用,每个字符都要三个及以上的字节
- 这样所有文件都扩大50%,不划算
7.UTF-8
记住餐馆排队比喻:一群人排队,如何他们一共坐几桌?
从第一个人开始问,一共有几个人,排除这几个人又问下一个同行有几个人即可。
- UTF-8中的8意思是最少可以用8位存一个字符(最小为8,其他为16或24等)