字符数据在计算机中的表示ASCII 和UTF-8

字符数据-character data

字符在计算机中主要有两种表示方法:1.ASCII,  2.Unicode(UTF-8),以下为两种编码的定义

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码。UTF-8用1到6个字节编码Unicode字符。这种编码实现了人类所有的语言和一些复杂的符号。

在UTF-8中,编码的长度是变化的,变化的方式参照下表:


也就是说,要根据所将要被储存的数据的bit的长度来决定是该数据是多少byte.

其转换方式如下:(假设给定的数据为十六进制)

1.将该十六进制的数据转换为二进制

2.根据转换的二进制的位数确定在UT8中需要多少bit才足够将该数据储存,并确定byte数。例如:一个十六位的数据 0xAA, 在转换为二进制之后为 1010 1010, 可见该数所需的bit为8,对比上表可见1byte UTF-8(7bits)是不足以保存此数据的,但是2byte(11bits)是足够的,所有这个数据0XAA在UTF-8中以2byte(11bits)来储存,所有原先的二进制数据可以在前补0,补满所需bits, 为000 1010 1010 (11bits)

3, 根据数据的byte数,转换为UTF-8形式。方式为, 每8bits写成1byte。如果该数据只需要1byte的大小则该字节的第一位为0即可,若该数据需要2bytes或多bytes, 则转换后第一byte的“1”的个数为所需byte的个数, 然后是0, 然后为第一byte的数据,其他byte以10开头即可,按此原则从左往右补满bit。例如上面的例子:所需byte为2,所以第一byte的1的个数为2,第一byte为  110 00010, 第二byte为10开头,为 10 101010,所以0xAA,在UTF中为 110 00010 10 101010。

one example:

€这个数据的十六位进制为0X20AC

1.转为二进制为 0010 0000 1010 1100

2此二进制的有效位为14,所需byte为3byte(16bits)

3.改写为UT8为:

第一字节         第二字节        第三字节

1110 0010     10 000010       10 101100

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值