字符编码--笔记
来源:互联网 发布:二级access题库软件 编辑:程序博客网 时间:2024/06/06 04:11
一、原码、反码、补码
- 补码:
- CPU的减法,通过加法器和补码实现
- 溢出(循环):256-1 与 -1 二进制一样。
负数补码计算方法:数值位(符号位外的后7位),取反+1 //不”+1”的话,减法不能成功地变为加法
- -128 1000,0000 //-128是人为规定的,从-127而来,也是”+1”的原因之一
- -127 1000,0001
- -1 1111,1111
- 0 0000,0000 //-1 + 1 = 1,0000,0000就会溢出了,因为-1 与 256-1 效果一样
- 1 0000,0001
- 127 0111,1111
byte -255[-1, 1]
- 原码10000000,1111111//数值位取反–>
- 反码11111111,0000000–>+1
- 补码1111’1111,0000001
- int -255[-1, -1, -1, 1]
- 原码1000’0000,0000’0000,0000’0000,1111111–>数值位取反
- 反码1111’1111,1111’1111,1111’1111,0000000–>+1
- 补码1111’1111,1111’1111,1111’1111,0000001
二、二进制校验码
- 奇偶校验码-奇校验码 和 偶校验码 的统称.
海明校验码-多重奇偶校验检错码
- 可以检测任何位出错,并能纠正1位错误
- 必须满足:pow(2,k)-1 >= n+k //pow(2,k) (代表2的k次方)
CRC即 循环冗余校验码–广泛应用于数据通信领域和磁介质存储系统中.
三、字节序、bit序、有效位
字节序: 一个数据单元(多字节)的字节顺序。不必考虑byte内部bit的细节。
- 大,小:权值大,权值小
- 端:开端,左边是开端,左边是低地址,人的思维从左到右,
- Big-Endian
- 人的习惯。
- 权值最大(高)的字节(MSB)放在低地址(端)。
- 符号位的判定固定为第一个字节,容易判断正负。
- 实例:java,TCP。
- Little-Endian
- 计算机的习惯。
- 权值最小的字节(MSB)放在低地址(端)。
- 强制转换数据不需要调整字节内容,1、2、4字节的存储方式一样。
- 实例:win7
bit序:一个字节内,bit的顺序。大都是大端序,左大右小,比如TCP中6bits的标志位:
- URG=2^5=32=0x20
- ACK=2^4=16=0x10
- PSH=2^3=8=0x08
- RST=2^2=4=0x04
- SYN=2^1=2=0x02
- FIN=2^0=1=0x01
有效位
- 最低有效位(lsb,least significant bit):
- lsb指一个二进制数字中的第0位(即最低位,最低权重位,权值为2^0)
- LSB(the Least Significant Byte),多字节序列中具有最大权重的字节。
- 最高有效位(msb,Most Significant Byte)
- lsb的反面。
- LSB的反面
Unicode & UTF-8
- Unicode (uniqueness code) 唯一码。是个字符集,是内存中的值
- UTF-8,以字节为单位对Unicode进行编码。
- “汉”的Unicode编码是0x6C49, 在0x0800-0xFFFF之间,使用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx
- 0x6C49对应的二进制:0110 1100 0100 1001, 依次代替3字模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。
- UTF-16, 以16位无符号整数为单位。略
- UTF-32, 以32位无符号整数为单位。略
阅读全文
0 0
- 字符编码笔记
- [转]字符编码笔记
- emacs 字符编码 笔记
- 字符编码笔记
- 字符编码学习笔记
- 字符编码笔记
- 字符编码笔记
- 字符编码学习笔记
- 字符编码笔记
- 字符编码--笔记
- 经典入门--字符编码笔记
- 字符编码和数据类型笔记
- 【学习笔记】--Struts字符编码过滤器
- java web笔记(字符编码)
- 【JAVA IO】_字符编码笔记
- 【JAVA IO】_字符编码笔记
- Python 字符编码小笔记(备忘录)
- 【JAVA IO】_字符编码笔记
- java多线程的使用
- spark 环境搭建
- LTE x-RNTI (2)
- 程序猿(媛)编码10 倍效率的三件事
- 基于Unity3D的相机功能的实现(六)—— 上帝视角(王者荣耀视角)
- 字符编码--笔记
- 文章标题
- numpy : np.percentile使用
- Java 获取当前时间的前几天或后几天
- 博弈论
- 怎么提交项目到github
- Yii2 优化 ErrorHandler
- c/c++各种排序算法
- unity,vs出现调用dll失败问题