织梦模板文件目录:根据GB2312编码表求汉字字节
来源:百度文库 编辑:中财网 时间:2024/04/29 07:38:32
根据GB2312编码表求汉字字节
java中有8种基本数据类型,byte,short,int,long,float,double,booleanbyte用1个字节表示,占8比特,取值范围 负2的7次方至正2的7次方减1 二进制00000000 第一位0如果为0表示正数 1表示负数
short用2个字节表示,占16比特,取值范围 负2的15次方至正2的15次方减1 二进制00000000 00000000 第一位0如果为0表示正数 1表示负数
int用4个字节表示,占32比特,取值范围 负2的31次方至正2的31次方减1 二进制00000000 00000000 00000000 00000000 第一位0如果为0表示正数 1表示负数
long用8个字节表示,占64比特,取值范围 负2的15次方至正2的15次方减1 二进制00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 第一位0如果为0表示正数1表示负数
float用4个字节表示,占32比特
double用8个字节表示,占64比特
以上7种都属有符号数
char用2个字节表示,占16比特 00000000 00000000 2的16次方 0至65536
boolean只有2个值,TRUE和FALSE
java自动转型方向
char->int->long->float->double
byte->short->int->long->float->double
JAVA中的字节存的是补码
举个例子
"中"字
以GB2312中的编码为D6D0 (GB2312编码表可参看http://ash.jp/code/cn/gb2312tbl.htm)
code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D6A0 帧 症 郑 证 芝 枝 支 吱 蜘 知 肢 脂 汁 之 织
D6B0 职 直 植 殖 执 值 侄 址 指 止 趾 只 旨 纸 志 挚
D6C0 掷 至 致 置 帜 峙 制 智 秩 稚 质 炙 痔 滞 治 窒
D6D0 中 盅 忠 钟 衷 终 种 肿 重 仲 众 舟 周 州 洲 诌
D6E0 粥 轴 肘 帚 咒 皱 宙 昼 骤 珠 株 蛛 朱 猪 诸 诛
D6F0 逐 竹 烛 煮 拄 瞩 嘱 主 著 柱 助 蛀 贮 铸 筑
下面让我们来看一下JAVA里 “中”字取出来的字节是什么
public class Test {
public static void main(String args[]){
String a="中";
byte ar[];
try {
ar = a.getBytes("GB2312");
for(int i=0;i
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出结果为
-42
-48
让我们来看一下如何根据编码表算出这两个数字
首先明白编码表的表示为16进制
D6二进制表示为 11010110 最高为符号位1表示负数 0表示正数
D0二进制表示为 11010000 最高为符号位1表示负数 0表示正数
让我们来看一下D6如何换算出-42
将D6的二进制首先换算为10进制,二进制换算为10进制例:
二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成 十进制
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0 +
---------------------------
100
用横式计算为:
0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100
D6二进制表示为 -1010110
求反码为-0101001
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)
再求出补码-0101010
补码:反码加1称为补码。
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
结果为 -0101010=-(25 + 23 +21)=-42
其它一个相同的计算方式
在哪可以下载到GB2312汉字编码表的ACCESS数据库
请介绍一下GB2312简体中文编码表?包含多少汉字?包含汉字更多的还有什么表?
求Unicode编码表
哪位大侠有unicode的汉字编码表
24*24的汉字用多少字节的ASCⅡ码表示
商业会计科目编码表
汉字 字节
哪位有五笔字型编码表?
求按内存按字节编址计算方法
根据国标规定,每个汉字在计算机内占用几个字节存储
GB2312汉字编码包括繁体汉字吗?
怎么查询汉字的GB2312字符代码
求asic码表
求ASCll码表
求大手笔码表
求大手笔输入法码表
请问有邮政编码表吗
何处有汉字的区位码表下载?
汉字"大",在GB2312中的编码为3474H,求它在UCS中的编码(要具体过程)
一个汉字是多少个字节?
一个汉字占几个字节
一字节是多少个汉字?
请问一个汉字几个字节?
一个汉字是几个字节??