关于二进制知识(编码和数字)的新手总结

看了好久的文章,终于较为清楚编码问题了,下面是总结
1、中文编码常见的有:简体-->GB系列(GB2312,GB2312-80,GB10830);繁体-->BIG5;还有万国码UTF-8
2、UTF-8并不是编码规范,而是Unicode(===UCS,另一组相同的编码名称)的实现方式,还有UTF-16,UTF-32
3、Unicode最早定义了2个字节的编码(但这是数学问题,并没有规定存储和传输方式),共65535个符号,这就对应UTF-16(===UCS-2);但是这还不够,又发展出UTF-32(===UCS-4)来表示更多字符,但是UTF-16已经满足绝大多数需求,所以就以UTF-16为主,UTF-32稍加改造使用
4、UTF-16的缺点就是英文字符也是2字节编码,有很大浪费,所以使用UTF-8的格式来进行存储和传输

5、\uxxxx就代笔是Unicode编码的字符

UTF-8的编码规则很简单,只有二条:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

参考:

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

http://javawolf.blog.163.com/blog/static/121613275200967111121659/

http://blog.csdn.net/dengyunze/article/details/160958

时间: 2024-10-29 00:24:39

关于二进制知识(编码和数字)的新手总结的相关文章

二进制的编码

通常计算机系统中讨论二进制的编码问题涉及到的有:原码.反码.补码,这里简单探讨一下他们之间的关系. 原码与反码 原码是最先被提出的一种编码方式,使用最高位表示符号(0表示正,1表示负),其余位表示数值.原码存在一个问题,就是自然界中 +0 和 -0 是相同的,但 +0 的原码是 0b00,而 -0 的原码是 0b10,这样 0 出现两种编码方式. 反码是从原码到补码的过渡阶段,对于任意一个整数 n ,它的反码: n > 0:n的反码和原码相同 n < 0:n的反码等于原码进行如下变换:1.符号

OIer应该知道的二进制知识

计算机使用\(2\)进制,这是众所周知的.在学习\(OI\)的过程中,\(2\)进制也显得尤为重要.有时候,细节决定成败,所以我想总结一下容易被遗忘和误解的关于\(2\)进制的知识. 1.运算符 &:与.1&1=1,1&0=0,0&0=0:(同真为真) |:或.1|1=1,1|0=1,0|0=0:(一真俱真) ^:异或.1 ^ 1=0,1 ^ 0=1, 0 ^ 0=0:(阴阳协调为好,极阴或极阳皆为坏) num>>len:将num左移len位,低位溢出舍弃,高位

Python-基础知识-编码和函数

编码 python2 python2.x的默认编码是ASCII 文件开头那个编码声明是告诉解释这个代码的程序,以什么编码格式把这段代码读入到内存,因为到了内存里,这段代码其实是以bytes二进制格式存的,不过即使是2进制流,也可以按不同的编码格式转成2进制流,你懂么? 如果在文件头声明了# _*_coding:utf-8_*_,就可以写中文了,不声明的话,python在处理这段代码时按ascii,显然会出错, 加了这个声明后,里面的代码就全是utf-8格式了 在有# _*_coding:utf-

使用base64对图片的二进制进行编码,使其可以利用ajax进行显示

有时候我们需要动态的将图片的二进制在页面上进行显示,如我们需要弄一个验证码的功能,那么如果我们的验证码的图片在后台得到的是该图片的二进制,那么当我们需要在页面上点击一个按钮利用ajax进行切换的时候,如果在后台直接返回的是该图片的二进制,那么该图片是无法进行显示的. 直接返回字节流给img标签的src是可以的,如<img src="servlet/CheckCode">,但在之后进行切换的时候 使用ajax请求,如果仅仅返回图片的二进制然后把它传给img的src是不能的,目

Android简单的编写一个txt阅读器(没有处理字符编码),适用于新手学习

本程序只是使用了一些基本的知识点编写了一个比较简单粗陋的txt文本阅读器,效率不高,只适合新手练习.所以大神勿喷. 其实想到编写这种程序源自本人之前喜欢看小说,而很多小说更新太慢,所以本人就只能找一个完本的.txt小说下载下来,有没有网络都可以看,当然现在不看那玩意了. 废话就不说了,程序中使用到的有4个类,5个xml文件,其中3个布局文件.String.xml.AndroidManifest.xml. 先看效果图吧(虽然很丑):     下面就上代码吧,本人都注释好了,由于本人技术还不行,注释

移位操作和二进制知识

常用的移位操作是<< 和 >> ,分别为左移和右移.我们在C语言中有算数移位和逻辑移位两种. 算数移位:区分符号的移位       {C语言中直接是定义char m = 3} 逻辑移位:不区分符号的移位   {C语言中用unsigned char m = 3} 算数移位和逻辑移位有什么不同,举例说明,例如: (1)对无符号数3来说: x<<1往左移一位,最左边的位移掉了,最右边的移进来的位补零.变成00000110,所以结果是6:[1*2^2 + 1*2^1 + 0*2

Python初学者的29个知识难点汇总,推荐新手收藏!

初学Python的人总会遇到这样或者那样的问题,Python小编总结了Python初学者的常见的29个知识难点,具体如下: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的目录 直接 dir 3 想在一个盘下进去一个文件夹,用cd空格目标文件 cd p 4 写文件的第一个字母后 按tab键自动补全 如果有多个p开头的则在按tab 会在所有之间切换 5 d:切盘 dir 查找目录 cd 进去目标文件(相当于双击) 6 往上走一层 cd .. 走两层 cd ../

特殊编码\u200e 数字长度比实际位数增多问题

银行卡上传时,由于特殊编码\u200e,该编辑是string类型非空占位符号,肉眼看不见,错误值:[‎622262],正常值[622262] string dbStr = "‎622262"; string upStr = "622262"; Console.WriteLine("dbStr:"+ dbStr.Replace("\u200e","").Length); 通过工具比较: 错误编码需要做一下替换

音视频编码基础知识

本文转载自 http://blog.csdn.net/ljzcom/article/details/7336258 ,如有需要,请移步查看. Technorati 标签: 音视频 编码 基础知识 --------------------------------分割线开始----------------------------------------------- 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中