C# 算法的逆推,汉字与数字的互转
2013-05-31 22:30
148 查看
private void button1_Click(object sender, EventArgs e) { int i; try { string haha = ""; string str = "你好"; byte[] gb2312_bt = Encoding.GetEncoding("gb2312").GetBytes(str); for (i = 0; i < (str.Length * 2); i += 2) { int n = (int)gb2312_bt[i] << 8;// <<这个是左移位, << 1 是 * 2,<< 2是 * 4, << 3是 * 8,那么<< 8 就是* 256了 n += (int)gb2312_bt[i + 1]; haha += " " + n.ToString(); } MessageBox.Show(haha); } catch { MessageBox.Show("请输入汉字字符", "出现错误"); } } public void CountA() {//由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。 int h = 47811;//根据得出的结果逆推汉字 byte[] bts = new byte[2]; for (int i = 161; i <= 254; i++) { int nihao=256 * i; if ((h - nihao) >= 161 && (h - nihao) <= 254)//这里判断都是根据上面的那个依据,和算法公式来做判断 和逆推的 { bts[0] = (byte)i; bts[1] = (byte)(h - nihao); break; } } string result = ""; result = Encoding.GetEncoding("gb2312").GetString(bts);//这里的这个编码 要和原来算法的一致 }
参考算法:http://www.coding123.net/article/20100805/2772.aspx
和汉字编码:http://zhidao.baidu.com/question/328878967.html
相关文章推荐
- php数字转汉字代码(算法)
- Win8 Metro(C#)数字图像处理--2.49Zhang二值图像细化算法
- C#数字图像处理算法学习笔记(二)--点运算与直方图
- java实现 阿拉伯数字转换为汉字数字 算法
- 阿拉伯数字转汉字数字(C#)
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- C# 计算字符串里的汉字多少个.数字多少个.英文多少个.符号和空格多少个
- C#汉字转化成拼音的算法
- 用C# 重写数字日期转换为汉字日期并具有分割功能函数类
- 字符串转化数字算法(C#)
- C#数字转换成大写汉字程序
- C#中汉字数字、汉字拼音的转换
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- c#随机生成汉字、字母、数字
- C# 数字转换成汉字大写 数值转换成汉字大写
- 验证码的三种做法[纯数字][纯汉字][字母\数字\汉字混合]C#
- C#中汉字数字、汉字拼音的转换
- ASP.NET(C#)将汉字数字转换成阿拉伯数字
- 转:验证码的三种做法[纯数字][纯汉字][字母\数字\汉字混合] C#