已知汉字如何求内码?已知内码如何求汉字?(求代码)

fhlkm 2011-02-24 04:31:14
已知汉字如何求内码?已知内码如何求汉字?
...全文
210 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aotian16 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bao110908 的回复:]

既然是求代码,那就不再废话了,直接上代码:

Java code
public class Test3 {

public static void main(String[] args) {
System.out.println(ChineseUtil.toGBKHex('安'));
System.out.println(ChineseUtil.he……
[/Quote]
還真有這東西啊
wcwtitxu 2011-03-01
  • 打赏
  • 举报
回复

java.net.URLEncoder.encode("安", "GBK").replace("%", "")
  • 打赏
  • 举报
回复
既然是求代码,那就不再废话了,直接上代码:

public class Test3 {

public static void main(String[] args) {
System.out.println(ChineseUtil.toGBKHex('安'));
System.out.println(ChineseUtil.hex2GBK("b0b2"));
}
}


import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.CharacterCodingException;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;

public class ChineseUtil {

private final static char[] HEX = "0123456789abcdef".toCharArray();
private final static Charset GBK_CHARSET = Charset.forName("GBK");

public static String toGBKHex(char c) {
CharsetEncoder enc = GBK_CHARSET.newEncoder();
CharBuffer cb = CharBuffer.allocate(1);
cb.append(c);
cb.flip();
try {
return toHex(enc.encode(cb).array());
} catch (CharacterCodingException e) {
e.printStackTrace();
return null;
}
}

public static String toHex(byte[] bys) {
if(bys == null) {
return null;
}
if(bys.length == 0) {
return "";
}
char[] chs = new char[bys.length * 2];
for(int i = 0, k = 0; i < bys.length; i++) {
chs[k++] = HEX[(bys[i] >>> 4) & 0xf];
chs[k++] = HEX[bys[i] & 0xf];
}
return new String(chs);
}

public static String hex2GBK(String hex) {
byte[] bys = hex2Bytes(hex);
ByteBuffer bb = ByteBuffer.wrap(bys);
return GBK_CHARSET.decode(bb).toString();
}

public static byte[] hex2Bytes(String hex) {
if(hex == null) {
return null;
}
if(hex.length() == 0) {
return new byte[0];
}
if(hex.length() % 2 != 0) {
throw new IllegalArgumentException("hex string is incorrect");
}
char[] chs = hex.toCharArray();
byte[] bys = new byte[chs.length / 2];
for(int i = 0, k = 0; i < bys.length; i++) {
bys[i] = (byte)((hex2Byte(chs[k++]) << 4) | hex2Byte(chs[k++]));
}
return bys;
}

public static int hex2Byte(char ch) {
if(ch >= '0' && ch <= '9') {
return ch - '0';
}
if(ch >= 'a' && ch <= 'f') {
return ch - 'a' + 10;
}
if(ch >= 'A' && ch <= 'F') {
return ch - 'A' + 10;
}
throw new IllegalArgumentException(ch + " is not hex character");
}
}

fhlkm 2011-02-24
  • 打赏
  • 举报
回复
回复错了:
比如说 “安 ”它的内码转化成十六进的为B0B2,如何写个函数,输入字符串“安”就能返回这个十六进制
同理 已知十六进制B0B2如何写个函数,输入它之后就能显示“安”
qyfbq 2011-02-24
  • 打赏
  • 举报
回复
escape和unescape函数?
fhlkm 2011-02-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kokobox 的回复:]
能不能说的清楚一点呢
[/Quote]
比如说 “安 ”它的内码转化成十六进的为3D1,如何写个函数,输入字符串“安”就能返回这个十六进制
同理 已知十六进制3D1如何写个函数,输入它之后就能显示“安”
kokobox 2011-02-24
  • 打赏
  • 举报
回复
能不能说的清楚一点呢
有通信原理试题库和部分书后习题 XXX级本科《通信原理》试题(卷) 题 号 1 2 3 4 5 6 7 8 9 总分 分 数 说明:答案要简明扼要,全部做在考试题(卷)上。 一、 (20分)填 空 1、 数字通信系统的主要优点是 __________ 、_____________、 ________________、________________。 2、 通信系统的主要质量指标通常用_________和________衡量, FSK系统指标具体用______ _和_ _______衡量,FM/PM系统具体指标用______ 和______ _衡量。 3、 PCM量化可以分为 和 。在线性PCM中,抽样频率为8 KHZ,对双极性信号编码时编码器输出码元速率为72 KB,则量化信噪比为_______dB。 4、 ΔM信号携带着输入信号的_______信息,Σ—ΔM信号携带着输入信号的_______信息,PCM信号携带着输入信号的_______信息,。 5、 窄带高斯噪声的一维随机包络服从_________ 分布,其概率密度函数p(x)= ;OOK信号加窄带高斯噪声的 一维随机包络服从 分布。 6、 在0—-T时刻内高度为A的矩形信号,与之相匹配的滤波器的单位冲激响应h(t)图形为 ,传递函数H(ω)= ,最大输出信噪比r0max= ,最大信噪比出现的时刻to= 。 7、 门限效应是 ;用示波器观察眼图的方法步骤是(1) ,(2) 。 8、 二进制代码 1011000000000000101的差分码是 ;HDB3码是 +1 。 9、在ΔM系统中,输入信号f(t)=Acosωkt,抽样速率为fs,量化台阶为δ,要系统不出现过载现象,而且能正常编码,输入信号f(t)的幅度范围应为 。 10、信道带宽为6 MHz,信号功率与噪声谱密度之比为6 MHz,则信道最大传输速率为 ,当信道带宽B趋向无穷大时,则信道最大传输速率为 。 二、(15分)已知语音信号的最高频率fm为4kHz,幅度范围为(-5.120V,+5.120V),采用13折线法对其进行PCM,试回答计算下列问题: 1 当采样值为-1.450V时编码器的输出C0C1C2C3C4C5C6C7(设段内码为戈雷码); 2 量化误差为多少(伏); 3 C0C1C2C3C4C5C6C7=11010011时,表示的采样值是多少? 4 编码器的输出速率Rb ; 5 如果有32路同样信号,设每帧头增加2bit,且每路也增加1bit做同步信息,对它们进行TDM多路复用, 编码器的输出速率RΣ=? 三、(10分)已知(7,3)循环码的全部码字如下表: 0000000;0011101;0100111 0111010;1001110;1010011 1101001;1110100;1111111 1. 该循环码共有几个循环圈,并画出循环圈; 2. 循环码的生成多项式g(x),生成矩阵G和监督矩阵H。 四、 (5分)已知码长为15的汉明码, 1. 计算监督位应为多少? 2. 计算编码效率为多少? 五、(15分)已知数字信息流为 10100111,码元速率为2400B,载波频率为4800Hz,: 1、 画出2DPSK信号的波形示意图; 2、 画出产生和接收2PSK信号的原理方框图; 3、 在2PSK信号产生和接收方框图基础上,如何改动可以产生和接收2DPSK信号; 4、 二进制数字调制系统中,在相干接收和非相干接收情况下,那种信号的系统误码率最大,那种信号的系统误码率最小; 5、 2FSK信号的频带宽度B2= ?8ASK信号的频带宽度B8=? 六、( 10分)已知AM信号的时域表示式为 1、 画出产生该信号的方框图; 2、 画出该信号的频谱图(基带信号的频谱自定); 3、 画出一种能接收(解调)该信号的方框图。 七、(8分)数字基带传输系统的传输特性H(ω)如下图, 1、 当传输速率分别为fb=2w、fb=3w时,画图分析在抽样点上是否有码间串扰? 2、 系统无码间串扰的最大传输速率fbmax=? 八、(9分) 同步是通信系统的重要部分,简要回答下列问题: 1、 实现载波同步有哪些具体方法? 2、 帧同步系统的主要性能指标有哪些; 3、 为使群同步能可靠建立且具有一定的抗干扰能力,群同步应采取什么措施。 九、(8分)已知某高斯信道的频带宽度为6 MHZ,如果要传输24 Mbit/s的数字信号,试设计(画出)其发端的原理
西南交通大学;实验(大作业)题目:C语言文件操作;实验目的: (1) 掌握C语言字符文件读写方法; (2) 掌握C语言二进制文件读写方法。 实验要: (1) 完成2个文件操作程序。 (2) 撰写实验报告:每个程序包括源程序代码;按要描述关键算法或算法流程图;提供程序测试结果(至少两种不同输入,可屏幕截图)与结论。 实验内容: 1. 在字符文件b.txt中录入n个整数,录入整数的分隔符为空格、换行或TAB。若n=5,则b.txt的一种正确格式为 5 9 12 -15 30 -7 即b.txt的第一个数为n,后面是n个整数。 编写程序,从文件b.txt读出n值,建立长度为n的动态1维整型数组,然后继续从文件b.txt读入n个整数存于该数组,进行由小到大排序,最后将排序结果输出到字符文件c.txt中。 要的输出格式是每个整数%6d,每输出5个整数换一行。 实验报告中要给出该程序的流程图。 2. 1616点阵汉字的显示。从键盘输入一个汉字,从1616点阵汉字库文件HZK16.dat中毫读取汉字点阵信息,打印汉字到控制台屏幕上(构成汉字的每个点用输出字母O表示)。 输入输出示例: 请输入一个汉字:中 O O O O OOOOOOOOOOOOOO O O O O O O O O O O O O OOOOOOOOOOOOO O O O O O O O O O 提示1:16*16点阵字库文件HZK16.dat的存储格式。 以汉字“我”为例,16*16点阵构成的字形信息用二进制编码(1表示有点,0表示无点)形成32字节,每行2个字节,共16行,如下所示。这32个字节在文件中的存储顺序为:每行从左向右,行从上到下。 16*16点阵字库文件HZK16.dat中,每个汉字(32字节字形信息)按区位码由小到大的顺序存储。以汉字“啊”为例,它的区号为16,位号为1,故它的32字节字形信息在文件中的起始字节偏移量offset=((区号-1)*94+位号-1)*32。 0000010010000000 0x04,0x80 0000111010100000 0x0E,0xA0 0111100010010000 0x78,0x90 0000100010010000 0x08,0x90 0000100010000100 0x08,0x84 1111111111111110 0xFF,0xFE 0000100010000000 0x08,0x80 0000100010010000 0x08,0x90 0000101010010000 0x0A,0x90 0000110001100000 0x0C,0x60 0001100001000000 0x18,0x40 0110100010100000 0x68,0xA0 0000100100100000 0x09,0x20 0000101000010100 0x0A,0x14 0010100000010100 0x28,0x14 0001000000001100 0x10,0x0C 提示2:GB2312-80汉字内码 GB2312-80共收录约6700多个汉字以及其它符号,用一个94行*94列的表格表示(最多可表示94*94个汉字和符号)。某个汉字所在的行号(从1开始)称为“区号”,列号(从1开始)称为“位号”,形成区位码。 如:汉字“啊”在16行,第1列,故它的区位码为(16,1)。 在存储器中,为了与ASCII码区别,用内码表示一个汉字的编码,汉字内码为一个2字节编码,第一字节=区号+160,第2字节=位号+160,故汉字“啊”的内码为(176,161)。 已知汉字内码,则在HZK16.dat中该汉字32字节字形信息首字节的存储位置为 offset=((内码第一字节-161)*94+(内码第二节字-161))*32

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧