2013年3月20日 星期三

左位移運算子
<<
右位移運算子
>>
G<<N 或 Y>>N
N可以是 int uint long ulong sbyte short ushort
而 byte sbyte short ushort 類型的數值 位移操作後 值得類型 將自動轉int

以下範例


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GetCode
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_Get_Click(object sender, EventArgs e)
{
try
{
char chr = txt_chr.Text[0];//0代表取第一個字
//假設TEXTBOX輸入"一等" chr回傳19968的UNICODE的值
byte[] big5_bt = Encoding.GetEncoding("big5").GetBytes(new Char[] { chr });
//宣告陣列 存入Char[0] =19968 遇到了 Encoding.GetEncoding("big5") 轉成繁體中文2BYTE =164 跟 64
int n = (int)big5_bt[0] << 8;
//將big5_bt[0]=164 轉乘 二進制=10100100 左移動8位 補0 =10100100+00000000= n =41984
n += (int)big5_bt[1];
//41984+64=42048
//第一個字節移8位後與第二個字節相加得到中文編碼
txt_Num.Text = n.ToString();//顯示漢字編碼
}
catch (Exception)
{
MessageBox.Show(//異常提示訊息
"請輸入中文字符!", "出現錯誤!");
}
}
}
}

關於技巧 左移*2 右移/2
EX
164 /41984=256=2的8次方=8個0
164*256=41984

沒有留言:

張貼留言