`
jix
  • 浏览: 18062 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

根据GB2312编码表求汉字字节

    博客分类:
  • java
F# 
阅读更多
   java中有8种基本数据类型,byte,short,int,long,float,double,boolean
byte用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 00000000 00000000 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<ar.length;i++){
    System.out.println(ar[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简体中文编码表

    ### GB2312简体中文编码表知识点详解 #### 一、GB2312简介 GB2312是中国国家标准局于1980年发布的一种汉字编码标准,全称为《信息交换用汉字编码字符集·基本集》。它是中华人民共和国第一个汉字编码国家标准,...

    中国汉字GB2312编码表

    综上所述,《中国汉字GB2312编码表》作为中国汉字编码的一个里程碑,其在中文信息处理史上的地位不可撼动。它不仅促进了中文计算机技术的发展,更为后续的汉字编码标准提供了坚实的基础。从历史和发展的角度来看,GB...

    GB2312简体中文编码表.pdf

    在使用GB2312编码的系统中,中文的显示和输入通常需要特定的输入法编辑器(IME),以便用户能够根据读音或其他标准输入相应的汉字。 由于GB2312是较早期的编码标准,随着计算机技术的发展,它也出现了一些局限性,...

    GB2312编码对照表

    对于那些研究中文信息处理技术的发展历程的学者而言,GB2312编码表和其设计理念仍然是不可忽视的重要参考。而对于普通用户来说,了解GB2312编码可以帮助我们更好地理解当前所使用的编码标准,并在使用旧式或特殊系统...

    GB2312编码表

    因此,整个GB2312编码表理论上可以包含(254×254=64516)个不同的码位,实际上只使用了一部分来编码汉字和符号。 #### 三、GB2312编码表格式解析 在提供的部分内容中,可以看到编码表的格式大致如下: - **标题**...

    GB2312简体中文编码表(完整版)

    GB2312编码表是一种使用双字节对汉字及其符号进行编码的标准,它的全称是《信息交换用汉字编码字符集 基本集》。GB2312编码涵盖了6763个汉字和682个其它符号,其中包括英文字符和一些特殊符号。该编码由中华人民...

    汉字GB2312编码查询工具

    汉字GB2312编码查询工具是一款专为编程和硬件开发人员设计的实用软件,尤其适合单片机开发者。在进行嵌入式系统或单片机编程时,常常需要处理字符编码问题,GB2312编码作为一种早期的中文字符集,对于处理中文字符在...

    GB2312编码表 GB2312编码表

    根据GB2312编码表,这个组合可能对应的汉字是“阿”。 3. **A3C0**:高字节为A3、低字节为C0。查询GB2312编码表后,我们得知这个组合可能代表的是汉字“八”。 4. **A4D0**:高字节为A4、低字节为D0。根据GB2312...

    GB2312简体中文编码表.docx

    GB2312 是一种简体中文编码表,收录了 6763 个汉字,其中一级汉字 3755 个,二级汉字 3008 个,同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的 682 个全角字符。整个字符集分成 ...

    GB2312简体中文编码表及转换程序

    GB2312简体中文编码表是早期中国计算机系统中广泛使用的字符编码标准,它在1970年代由中华人民共和国国家标准局制定,旨在解决中文信息处理的问题。该编码表包含了6763个常用汉字和一些特殊符号,分为两级,一级包括...

    获取汉字首字母 GB2312编码表中的所有汉字

    GB2312编码表将每个汉字或符号用两个字节来表示,前一个字节是区号,后一个字节是位号,总共划分了94个区,每个区94个位,形成一个94x94的矩阵。 汉字首字母转换,通常用于快速输入汉字或者生成关键词索引。对于多...

    GB2312汉字编码表

    GB2312收录简体中文编码表,共7445个图形字符,其中汉字占6763个。GB2312规定"对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示",习惯上称第一个字节为"高字节",第二个字节为"低字节"。 GB2312...

    js对中文字符串进行gb2312编码解码

    GB2312编码是一种在中国大陆广泛使用的简体中文字符集,它包含了6763个常用汉字和一些其他字符。在JavaScript中进行GB2312编码和解码可以帮助我们正确地在不同环境间传输和展示中文字符。 首先,让我们理解GB2312...

    GB2312编码表.rar

    GB2312编码表是中文字符编码标准之一,它在计算机处理中文信息时起着至关重要的作用。这个RAR压缩包包含的“GB2312编码表.txt”文件,很可能是提供了一份详尽的GB2312字符集映射表,用于查询和理解GB2312编码体系。 ...

    GB2312编码表、做文本处理的比较有用

    GB2312编码表是中文字符编码标准之一,它在计算机处理中文文本时起着至关重要的作用。本文将深入探讨GB2312编码体系,以及它在文本处理中的应用。 GB2312,全称为“信息交换用汉字编码字符集·基本集”,是中国大陆...

    gb2312_unicode_utf8汉字编码对照表

    本文将基于提供的gb2312、Unicode与UTF-8的汉字编码对照表,深入探讨这三种编码方式的基本原理及其相互转换的方法。 #### 二、gb2312编码概述 gb2312(国标2312)是中国大陆最早制定的一个汉字编码标准,主要收录...

    GB2312编码表、字库下载以及移植教程.zip

    GB2312编码表是中文字符编码标准之一,全称为《信息交换用汉字编码字符集·基本集》,由中华人民共和国国家标准局于1980年发布,是中国大陆早期广泛使用的汉字编码系统。该编码标准定义了6763个常用汉字和682个非...

    gb2312编码表

    ### GB2312编码表解析 #### 一、GB2312编码概述 GB2312(国家标准信息交换用汉字编码)是中国大陆于1980年发布、1981年开始实施的一种汉字编码标准。它规定了6763个汉字和682个图形符号,并且分为一级汉字3755个和...

Global site tag (gtag.js) - Google Analytics