C#使用移位運(yùn)算符獲取漢字編碼的示例代碼
一、移位運(yùn)算符
位移運(yùn)算符分為左位移運(yùn)算符<<和右位移運(yùn)算符>>,分別用于向左和向右執(zhí)行移位運(yùn)算。對(duì)于X<<N或X>>N形式的運(yùn)算,含義是將X向左或向右移動(dòng)N位,X的類型可以是int、uint、long、ulong、byte、sbyte、short和ushort。需要注意的是,byte、sbyte、short和ushort類型的值在進(jìn)行位移操作后值的類型將自動(dòng)轉(zhuǎn)換成int類型。
二、方法
將字節(jié)序列的第一個(gè)字節(jié)向左移8位,第一個(gè)字節(jié)移8位后與第二個(gè)字節(jié)相加得到漢字編碼;
三、示例
using System.Text;
namespace _019
{
public partial class Form1 : Form
{
private Label? label1;
private TextBox? textBox1;
private TextBox? textBox2;
private Button? button1;
public Form1()
{
InitializeComponent();
Load += Form1_Load;
}
private void Form1_Load(object? sender, EventArgs e)
{
//
// txt_Num
//
textBox2 = new TextBox
{
Location = new Point(146, 52),
Name = "txt_Num",
Size = new Size(100, 21),
TabIndex = 7
};
//
// label1
//
label1 = new Label
{
AutoSize = true,
Location = new Point(24, 19),
Name = "label1",
Size = new Size(113, 12),
TabIndex = 6,
Text = "輸入一個(gè)漢字字符:"
};
//
// txt_chr
//
textBox1 = new TextBox
{
Location = new Point(146, 14),
Name = "txt_chr",
Size = new Size(100, 21),
TabIndex = 5
};
//
// btn_Get
//
button1 = new Button
{
Location = new Point(26, 50),
Name = "btn_Get",
Size = new Size(100, 23),
TabIndex = 4,
Text = "獲取漢字編碼值",
UseVisualStyleBackColor = true
};
button1.Click += new EventHandler(Button1_Click);
//
// Form1
//
AutoScaleDimensions = new SizeF(6F, 12F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(269, 89);
Controls.Add(textBox2);
Controls.Add(label1);
Controls.Add(textBox1);
Controls.Add(button1);
Name = "Form1";
Text = "獲取漢字編碼值";
SuspendLayout();
}
/// <summary>
/// GB2312并不是VS默認(rèn)支持的編碼,需要安裝編碼庫(kù)。
/// </summary>
private void Button1_Click(object? sender, EventArgs e)
{
try
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
/*char chr = textBox1!.Text.ToCharArray()[0]; *///獲取文本框中位置為1的漢字
char chr = textBox1!.Text[0]; //等效語(yǔ)句
char[] chars = [chr];
byte[] bytes = Encoding.GetEncoding("gb2312").GetBytes(chars: [chr]); //使用gb2312編碼方式獲得字節(jié)序列
int n = bytes[0] << 8; //將字節(jié)序列的第一個(gè)字節(jié)向左移8位
n += bytes[1]; //第一個(gè)字節(jié)移8位后與第二個(gè)字節(jié)相加得到漢字編碼
textBox2!.Text = n.ToString(); //顯示漢字編碼
}
catch (Exception)
{
MessageBox.Show("請(qǐng)輸入漢字字符!", "出現(xiàn)錯(cuò)誤!");
}
}
}
}四、生成效果

到此這篇關(guān)于C#使用移位運(yùn)算符獲取漢字編碼的示例代碼的文章就介紹到這了,更多相關(guān)C#獲取漢字編碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# PictureBox圖片控件實(shí)現(xiàn)圖片交換
在c#中可以使用PictureBox控件來呈現(xiàn)圖像,本文主要介紹了C# PictureBox實(shí)現(xiàn)圖片交換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
C#面向?qū)ο笾M實(shí)現(xiàn)商城購(gòu)物功能
這篇文章主要為大家詳細(xì)介紹了C#面向?qū)ο笾M實(shí)現(xiàn)商城購(gòu)物功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
C#四種計(jì)時(shí)器Timer的區(qū)別和用法
這篇文章介紹了C#四種計(jì)時(shí)器Timer的區(qū)別和用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
C# winform程序?qū)崿F(xiàn)開機(jī)自啟動(dòng)并且識(shí)別是開機(jī)啟動(dòng)還是雙擊啟動(dòng)
這篇文章主要介紹了C# winform程序?qū)崿F(xiàn)開機(jī)自啟動(dòng)并且識(shí)別是開機(jī)啟動(dòng)還是雙擊啟動(dòng)的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
C#實(shí)現(xiàn)的二維數(shù)組排序算法示例
這篇文章主要介紹了C#實(shí)現(xiàn)的二維數(shù)組排序算法,涉及C#針對(duì)二維數(shù)組的遍歷、判斷、排序等相關(guān)操作技巧,需要的朋友可以參考下2017-12-12

