zoukankan      html  css  js  c++  java
  • 一个汉字编码是两个负数


    一个汉字对应的两个byte,都是负数。都是字节首位为1。

    GB2312和GBK每一个汉字由2个字节组成,这2个字节的ASCII码大小分别是:
    gb2312:

    high8 = 0xa1-->0xfe (161 - 254)
    low8 = 0xa1-->0xfe  (161 - 254)

    gbk:

    high8 = 0x80-->0xfe (128 - 254)
    low8 = 0x40-->0xfe (64 - 254)

    GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并涵盖了原Unicode中所有的汉字20902,总共收录了883个符号, 21003个汉字及提供了1894个造字码位。 Microsoft简体版中文Windows 95就是以GBK为内码,又由于GBK同时也涵盖了Unicode所有CJK汉字,所以也可以和Unicode做一一对应。

    GB码,全称是GB2312-80《信息交换用汉字编码字符集 基本集》,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。P-Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码、但兼容支持GB2312。GB码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,二级字3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。

    GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年10月,同年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。

    汉字存放在计算机中,称为:机内码。
    它和ASCII码,是有根本区别的。

    ASCII码是用来存放阿拉伯数字、英文、符号等等,和汉字,没有一丁点关系。

    “中”的机内码是 D6D0。
    D6D0,当成有符号数,写成十进制数字就是-10544;
    D6D0,当成无符号数,写成十进制数字就是 54992。

    【参考】

    用char[]存一个中文字,每个元素的为负数是怎么得出来的?-CSDN论坛 https://bbs.csdn.net/topics/390814154

    java中一个汉字转换成两个字节的时候,这两个字节都是负数吗? - 开源中国 https://www.oschina.net/question/158457_25160

    汉字的ASCII码对照表 - hdflj的专栏 - CSDN博客 https://blog.csdn.net/hdflj/article/details/5872711

    汉字的"ascii"码为什么是负数?_百度知道 https://zhidao.baidu.com/question/942277869400400652.html

  • 相关阅读:
    HDU 1124 Factorial
    hdu 1690 Bus System
    hdu 1113 Word Amalgamation
    POJ 2482 Stars in Your Window
    hdu 1385 ZOJ 1456 Minimum Transport Cost(经典floyd)
    hdu 1907 John
    VMware 虚拟机 安装 UBuntu 9.10 命令模式转换成窗口模试
    #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
    Ubuntu 下Hadoop 伪分布式 hadoop0.20.2.tar.gz 的安装
    文件拷贝代码以及疑问
  • 原文地址:https://www.cnblogs.com/wxl845235800/p/10500220.html
Copyright © 2011-2022 走看看