功能不同
1 != '1'
- 数字能加减乘除,字符串不行
- 字符串能表示电话号码,数字不行
存储方式不同
- JS 中 数字是用64位浮点数的形式存储的
- JS 中 字符串是用类似 UTF-8 的形式存储的
十进制转换为二进制方法:
- 先用2整除一个十进制整数,得到一个商和余数
- 再用2去除得到的商,又会得到一个商和余数
- 重复操作到商为小于1时为止
- 将得到的所有余数全部排列起来,再将它逆序排列即可
二进制转换为十进制方法:
- 从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右
- 如果首位是0就表示正整数,如果首位是1则表示负整数
- 正整数可以直接换算,负整数则需要先取反再换算
- 计算机内部表示数的字节单位是定长的。如8位、16位、32位。所以位数不够时,高位补零
用十六进制表示二进制:
- 因为二进制写起来慢
- 十六进制有16个字符:0、1、2、3、4、5、6、7、8、9 和 A、B、C、D、E、F
- 记住 8 4 2 1 对应 X X X X 从右往左每四位改写成一位
- 把大于9的数字改为A、B、C、D、E、F
可以使用程序员计算器转换
- HEX 表示 16 进制,BIN 表示 2 进制
- OCT 表示 8 进制,DEC 表示 10 进制
字符串的存储
0~127 表示所有的符号
- 0 表示结束字符
- 10 表示换行
- 13 表示回车
- 32 表示空格
- 33到47表示标点
- 48到57表示数字符号
- 65到90表示大写字母
- 97到122表示小写字母
- 127表示删除键
GB2312
- 由中国国家标准局编写
- 0000~FFFF 表示汉字
- 一个16进制数是4个0/1位
- FFFF就是4x4=16位,也就是两个字节
- 最多收录 2^16 = 65536 个字符
- 但只收录了 6000 多汉字、西文字母和日文假名
GBK
- 国标扩由微软编写
- 含21886个汉字和图形符号
- 收录了中日韩使用的几乎所有汉字
- 完全兼容 GB2312
- 依然使用 16 位(两字节)
Unicode
- 已收录 13 万字符(大于 16 位),全世界通用
- 以后还会继续扩充,不会停止
- 每个字符要用三个及以上字节
UTF-8
- 最少可用 8 位存一个字符
- UTF-8 是 Unicode 的实现方式之一
- 可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度
*本文为鲲游北冥的原创文章,著作权归本人和饥人谷所有,转载务必注明来源