字元轉換(2,8,10,16進製制,ASCII碼)

2022-02-22 02:23:31 字數 2503 閱讀 6776

羅列了一些用到的,各進製 以及 ascii 間的轉換,記錄備忘

一,先說說 2,8,10 ,16 各進製之間的轉化

1,convert.toint32(string value, int frombase)  :將字串轉換為數字(如2進製0010>也就是2^1=2)

):數字轉化為字串

1.12進製(string)>>>10進製(int)

string strbase2="0101";

int  intbase10=convert.toint32(strbase2,2);

結果:5

1.28進製(string)>>>10進製(int)

string strbase8="0101";

int  intbase10=convert.toint32(strbase8,8);

結果:65   

1.316進製制(string)>>>10進製(int)

string strbase16="0101";

int  intbase10=convert.toint32(strbase16,16);

結果:257   

1.410進製(int)>>>2進製(string)

int  intbase10=9; (大家心算也知道結果為1001)

string strbase2=convert.tostring(intbase10,2);

結果: 1001

1.510進製(int)>>>8進製(string)

//int  intbase10=9; (大家結果為11,但是體現不出8進製,換成15結果為》8^1+7)

int  intbase10=15;

string strbase8=convert.tostring(intbase10,8);

結果: 17

1.610進製(int)>>>16進製制(string)

//int  intbase10=9; (大家結果為9,但是體現不出1進製,好歹弄出個abcd啥的,換成27>>16^1+11(也就是b))

int  intbase10=27;

string strbase16=convert.tostring(intbase10,16);

結果: 1b

1.7其他型別的轉換(如2>8,8>16,16>2)

結果: 10101011

例:將乙個16進製制轉化為8進製

結果: 253

ps: 我們知道實際運用中,定義乙個16進製制,並非一定是string的

有這種寫法:int base16 = 0xab; (前面加0x)

這時候參照上例:

我們就可以寫成 int temp=convert.toint32(base16);(到是簡單了不是)

結果還是:253

二: ascii 轉化

2.1ascii字串轉10進製數

string tr = "水";

int ii = (int)convert.tochar(tr));

2.2ascii字串轉16進製制數

string s2 = "靜水"; (漢字雙位元組,也就是4個)

byte ba = (system.text.)asciiencoding.default.getbytes(s2);   (預設的是ansi)

foreach (var s in ba)

結果:190

203 

2.310進製轉換成ascii字串

int t=97;(對應的是「a」)

string s = ((char)t).tostring();

結果:a

int t=12345678;

string s = ((char)t).tostring();

結果多少?我去,這誰知道...

結果 :慎。。。。。

ps:

參照2.2: 我們得到結果: 190 178 203 174 ,怎麼講這些int型別的轉換為「靜水」

我們通過system.text.encoding.default.getbytes() 得到乙個byte陣列,也可以通過getstring將這個陣列轉換為對應的字元

(當然注意:)

string sss = system.text.encoding.default.getstring(new byte );

sss的結果為「靜」

system.text.encoding.(???), 這裡的???有很多態別(default>>ansi,utf-8,unicode....),按需要就行了

2 8 10 16進製制的轉換

電腦上的常用進製有 2 8 10 16四種,我們有時候需要對他們的表現形式做一些轉換,最基本的我們需要知道 2轉16 4個2進製位為乙個16進製制數,2進製1111為16進製制f,2進製中千位的1 8,百位的1 4,十位的1 2,個位的 1 1,將各個位的數作相應轉換再相加得到的數就是10進製數0 ...

C 資料2 8 10 16進製制之間轉換

留下記號,加強記憶 dotnet平台 十進位制轉二進位制 string str convert.tostring 69,2 十進位制轉八進位制 string str convert.tostring 69,8 十進位制轉十六進製制 string str convert.tostring 69,16 ...

c語言使用庫函式的2 8 10 16進製制轉換

只用於非負整數 include 上個程式是從十進位製到任意進製的轉換,這個程式是二進位制 binary 八進位制 octonary 十進位制 decimalism 十六進製制 hexadecimal include include include include void binary to dec...