`

java 机内码

阅读更多

 

工作中用到了机内码  完全陌生的概念  还好有万能的Google    记录一下 

过程  先转成区位码  再进行16进制计算

 

public class StringToJiNeiMa{

	
 
	public static void main(String[] args) throws Exception {
		String str = "计算机";
		int[] quwei = getQuwei(str);
		/*byte[] bs = str.getBytes("GB2312");
		String s = "";
		for (int i = 0; i < bs.length; i++) {
			int a = Integer.parseInt(bytes2HexString(bs[i]), 16);
			s += (a - 0x80 - 0x20) + "";
		}*/
		String s = "";
		for (int i : quwei) {
			s += i + ",";
		}
		//	System.out.println(s);

		String[] stringArray = s.split(",");

		StringBuffer jineima = new StringBuffer();
		for (String ss : stringArray) {

			String hex1 = Integer.toHexString(Integer.parseInt(ss.substring(0, 2)));
			String NewHex1 = hex1.length() > 1 ? hex1 : "0" + hex1;

			String hex2 = Integer.toHexString(Integer.parseInt(ss.substring(2, 4)));
			String NewHex2 = hex2.length() > 1 ? hex2 : "0" + hex2;

			long x1 = Long.parseLong(NewHex1, 16);
			long x2 = Long.parseLong(NewHex2, 16);

			//System.out.println(x);
			long y = Long.parseLong("A0", 16);

			jineima.append((Long.toHexString(x1 + y).toUpperCase()) + " " + (Long.toHexString(x2 + y).toUpperCase()) + " ");
		}
		System.out.println(jineima);

	}

	public static int[] getQuwei(String str) throws Exception {
		byte[] b = str.getBytes("gb2312");
		int[] quwei = new int[b.length / 2];
		for (int i = 0, k = b.length / 2; i < k; i++) {
			quwei[i] = (((b[2 * i] - 0xA0) & 0xff) * 100) + ((b[2 * i + 1] - 0xA0) & 0xff);
		}
		return quwei;
	}
	/*
	 * 1.机内码与区位码
	机内码高位字节=(区号)H+A0H
	机内码低位字节=(位号)H+A0H
	2.国标码与区位码
	国标码高位字节=(区号)H+20H
	国标码低位字节=(位号)H+20H
	3.区位码用两个10进制数表示,另外两种码用两个十六进制数表示.
	4."德"的区位码为2134,下面举例来看如何转成另外两种码:
	a.机内码
	高位字节=(21)(十进制)+A0H(十六进制)=15H+A0H=B5H
	低位字节=(34)(十进制)+A0H(十六进制)=22H+A0H=C2H
	所以,机内码为B5C2
	b.国标码
	高位字节=(21)(十进制)+20H(十六进制)=15H+20H=35H
	低位字节=(34)(十进制)+20H(十六进制)=22H+20H=42H
	所以,国标码为3542


	国标码=区位码+2020H,是这样计算的。区位码是使用十进制表示的。前两个表示“区”,后两个表示“位”,2838就是位于28区,38位,将28和38分别转换成16进制,就是1C26H
	然后用1C26H+2020H就得到了国标码。
	 */

}

 

 

分享到:
评论

相关推荐

    获取Unicode字符集中汉字的拼音和内码

    获取Unicode字符集中汉字的拼音和内码 pdf版 将汉字转化为Unicode字符集

    内码转换工具convertz

    是一个中文GB及Big5内码转换工具。能够让你随心所欲地将简体文件转换成繁体文件。转换速度相当快和具有「简转繁列表」提高辨识率来更正GB转Big5后繁简异字的问题、支持同时转换多个文件文件、提供文件及剪贴簿内码...

    4字节浮点数内码转换

    可以将4个字节的浮点数内码转换成浮点数。也可以将4字节的浮点数表示其内码形式。

    用JAVA写词法分析器

    用JAVA写词法分析器 给出一个简单语言的词法规则,画出状态转换图,并依据状态转换图编制出词法分析程序,词法规则如下: 单词符号 种别码 内码 break 1 char 2 continue 3 do 4 double 5 else 6 extern 7 float 8 ...

    GBK内码字符串转Unicode字符串

    NULL 博文链接:https://yangguo.iteye.com/blog/645370

    中文 Big5/GBK/Unicode/UTF8 内码转换器

    档案转换只能将纯文字格式的文件(例如 txt, html 等)转码,并不适用于如 MS Word, Excel 等 binary 档案。

    lex_编译原理_java_词法分析器_lex读取文件_lex描述文件_

    实验内容:(1)从txt文件中读入字符。 (2)统计行数和列数用于定位。 (3)删除空格类字符,包括... (属性值——token 的机内表示) (5)如果发现错误则报告出错 (6)根据需要是否填写标识符表供以后各阶段使用。

    k3物料库存及BOM查询

    金碟k3 ERP系统的物料库存及BOM的查询

    word源码java-poc:编译原理实验

    按拼写单词,并用(内码,属性)二元式表示。(属性值——token的机内表示) 如果发现错误则报告出错 根据需要是否填写标识符表供以后各阶段使用。 单词的基本分类: 关键字:由程序语言定义的具有固定意义的标识符。...

    BATS码的一些注解

    整个网络上的部分对于BATS码的知识进行的总结,总结的内容比较细致。

    文件编码批量转换工具(不用积分)

    支持所有文本格式的文档(如 txt,js,css,java,c..),二进制或程序(如word,excel,exe文件)不要使用本转换工具,因为是JAVA程序 需要你的机器上已经安装了JDK 使用方法: 1,打开start.sh文件,windows用户把扩展名.sh...

    汉明编码设计实验.zip

    华中科技大学视频——汉明编码设计实验,里面包含有已写好的实验报告,data实验以及汉字转区位码...实验报告的内容是设计包含16位原始数据(汉字机内码)的汉明码等。望下载的小伙伴门记得自己修改自己想要的汉字区位码

    成语接龙游戏,源代码

    其中实现了汉字内码的使用,汉字拼音排序的实现

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇

    Struts Hibernate MyEclipse Tomcat MySQL JSP 乱码 编码出错 内码设定

    合工大编译原理实验一词法分析李宏芒

    4) 按拼写单词(关键字、标识符、常数、运算符、关系运算符、分界符号,错误),分别对应内码1,2,3,4,5,6,7,并用(内码,属性)二元式表示 5) 根据需要可任意扩充标识符表供以后更加广泛的范围使用 6) 对于...

    六代单双色及门楣全彩产品开发资料201711.zip_通讯编程_Java_

    LED大屏对接过程中都会遇到的内码问题,该文档进行了详尽的描述

    GBBig5 编辑器 v1.1

    可快速进行GB/BIG5间的内码转换。4.可在线编辑远程文档。5.有Html,Pascal,Java,SQL,C#等10种不同的语法显示。6.支持文件拖拽。7.与Delphi相同热键的Bookmark设置与跳转。8.定义块的缩进与突出。9.可配置在线连接远程...

    随机生成汉字的小演示_有自己一点心得在里面

    个人学习一点心得,随机生成汉字的方法,配合java的Grahpics等和Grahpics2D类等能开发图片验证码,验证信息存放在Session中。少分啊,打发点吧!

    Active Audio Record ActiveX控件

    您可以通过设置内码参量完全控制音像文件的质量。 Active Audio Record ActiveX控件 支持标准声卡,还支持多张声卡并且具有多条设备线。您能容易地记录任一个来源的声音:譬如在网上流出的音像、收音机、音像球员...

Global site tag (gtag.js) - Google Analytics