巧用位移运算符获取汉字编码值

【实例说明】
 汉字在计算机中以字符的形式出现,还可以使用位移运算符获取汉字的编码值。

【关键技术】
 本实例实现时主要用到位移运算符,下面对其进行详细讲解。
 位移运算符分为左位移运算符"<<"和右位移运算符">>",分别用于向左和向右执行移位运算。
 对于X<<N或X>>N形式的运算,含义是将X向左或向右移动N为,X的类型可以是int、uint、long、ulong、byte、sbyte、short和ushort。
 需要注意的是,byte、sbyte、short和ushort类型的值在进行位移操作后值的类型将自动转换成int类型。

【技巧】
 在进行移位运算时,当数值的二进制数每次向左移1位就相当于乘以2,当数值每次向右移1位就相当于除以2.

【设计过程】
 (1)打开Visual Studio,创建一个WinForm程序,命名为GetCode。
 (2)窗体布局如下:

巧用位移运算符获取汉字编码值

页面代码如下:

 1 using System;

 2 using System.Collections.Generic;

 3 using System.ComponentModel;

 4 using System.Data;

 5 using System.Drawing;

 6 using System.Linq;

 7 using System.Text;

 8 using System.Windows.Forms;

 9 

10 namespace GetCode

11 {

12      public partial class FrmGetCode : Form

13      {

14           public FrmGetCode()

15           {

16      InitializeComponent();

17           }

18 

19           private void btn_Get_Click(object sender, EventArgs e)

20           {

21                try

22                {

23                     char chr = this.txt_chr.Text[0];    // 获取输入的第一个汉字

24                     // 使用gb2312编码方式获得字节序列

25                     byte[] gb2312_bt = Encoding.GetEncoding("gb2312").GetBytes(new char[] { chr });

26                     int n = (int)gb2312_bt[0] << 8; // 将字节序列的第一个字节向左移8位

27                     n += (int)gb2312_bt[1]; //第一个字节移8位后与第二个字节想家得到汉字编码

28                     this.txt_Num.Text = n.ToString();

29                }

30                catch (Exception)

31                {

32                     MessageBox.Show("请输入汉字字符!", "出现错误:");  

33                }

34           }

35      }

36 }

 

 

 

 

 

【来自:[LonelyShadow 博客] http://www.cnblogs.com/LonelyShadow

 

你可能感兴趣的:(运算符)