4-8 JS数据类型(Unicode与UTF-8)

数据为什么需要类型?

数字与字符串

  • 都是一,为什么要区分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等)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值