C#實(shí)現(xiàn)字符串進(jìn)制轉(zhuǎn)換方法匯總
C# 字符串進(jìn)制轉(zhuǎn)換
/// <summary>
/// 進(jìn)制轉(zhuǎn)換
/// </summary>
/// <param name="input"></param>
/// <param name="fromType">原來(lái)的進(jìn)制格式</param>
/// <param name="toType">要轉(zhuǎn)換成的進(jìn)制格式</param>
/// <returns></returns>
public string ConvertGenericBinary(string input, byte fromType, byte toType)
{
string output = input;
switch (fromType)
{
case 2:
output = ConvertGenericBinaryFromBinary(input, toType);
break;
case 8:
output = ConvertGenericBinaryFromOctal(input, toType);
break;
case 10:
output = ConvertGenericBinaryFromDecimal(input, toType);
break;
case 16:
output = ConvertGenericBinaryFromHexadecimal(input, toType);
break;
default:
break;
}
return output;
}
/// <summary>
/// 從二進(jìn)制轉(zhuǎn)換成其他進(jìn)制
/// </summary>
/// <param name="input"></param>
/// <param name="toType"></param>
/// <returns></returns>
private string ConvertGenericBinaryFromBinary(string input, byte toType)
{
switch (toType)
{
case 8:
//先轉(zhuǎn)換成十進(jìn)制然后轉(zhuǎn)八進(jìn)制
input = Convert.ToString(Convert.ToInt32(input, 2), 8);
break;
case 10:
input = Convert.ToInt32(input, 2).ToString();
break;
case 16:
input = Convert.ToString(Convert.ToInt32(input, 2), 16);
break;
default:
break;
}
return input;
}
/// <summary>
/// 從八進(jìn)制轉(zhuǎn)換成其他進(jìn)制
/// </summary>
/// <param name="input"></param>
/// <param name="toType"></param>
/// <returns></returns>
private string ConvertGenericBinaryFromOctal(string input, byte toType)
{
switch (toType)
{
case 2:
input = Convert.ToString(Convert.ToInt32(input, 8), 2);
break;
case 10:
input = Convert.ToInt32(input, 8).ToString();
break;
case 16:
input = Convert.ToString(Convert.ToInt32(input, 8), 16);
break;
default:
break;
}
return input;
}
/// <summary>
/// 從十進(jìn)制轉(zhuǎn)換成其他進(jìn)制
/// </summary>
/// <param name="input"></param>
/// <param name="toType"></param>
/// <returns></returns>
private string ConvertGenericBinaryFromDecimal(string input, int toType)
{
string output = "";
int intInput = Convert.ToInt32(input);
switch (toType)
{
case 2:
output = Convert.ToString(intInput, 2);
break;
case 8:
output = Convert.ToString(intInput, 8);
break;
case 16:
output = Convert.ToString(intInput, 16);
break;
default:
output = input;
break;
}
return output;
}
/// <summary>
/// 從十六進(jìn)制轉(zhuǎn)換成其他進(jìn)制
/// </summary>
/// <param name="input"></param>
/// <param name="toType"></param>
/// <returns></returns>
private string ConvertGenericBinaryFromHexadecimal(string input, int toType)
{
switch (toType)
{
case 2:
input = Convert.ToString(Convert.ToInt32(input, 16), 2);
break;
case 8:
input = Convert.ToString(Convert.ToInt32(input, 16), 8);
break;
case 10:
input = Convert.ToInt32(input, 16).ToString();
break;
default:
break;
}
return input;
}C#進(jìn)制轉(zhuǎn)換方法匯總
進(jìn)制轉(zhuǎn)換匯總
1.十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)(結(jié)果:11)
string s1 = Convert.ToString(3, 2);
2.十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)(結(jié)果:0011) (左側(cè)補(bǔ)位方法,轉(zhuǎn)八進(jìn)制,轉(zhuǎn)十六進(jìn)制……與之類(lèi)似)
string s2 = Convert.ToString(3, 2).PadLeft(4, '0');
3.十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)(結(jié)果:1100) (右側(cè)補(bǔ)位方法,轉(zhuǎn)八進(jìn)制,轉(zhuǎn)十六進(jìn)制……與之類(lèi)似)
string s3 = Convert.ToString(3, 2).PadRight(4, '0');
4.十六進(jìn)制轉(zhuǎn)二進(jìn)制數(shù)(結(jié)果:00001111)
string s4 = Convert.ToString(0xf, 2).PadLeft(8, '0'); ? ? ? ? ? ? string s5 = Convert.ToString(0xF, 2).PadLeft(8, '0'); ?//不區(qū)分大小寫(xiě),結(jié)果一樣。
5.十六進(jìn)制轉(zhuǎn)十進(jìn)制數(shù)
? string s6 = Convert.ToString(0xf, 10); ? ? ? ? ? ? ? ? ?//結(jié)果:15,string類(lèi)型
? ? ? ? ? ? string s7 = Convert.ToString(0xf, 10).PadLeft(4, '0'); ?//結(jié)果:0015,string類(lèi)型
? ? ? ? ? ? int s8 = Convert.ToInt32("f", 16); ? ? ? ? ? ? ? ? ? ? //結(jié)果:15,int類(lèi)型 6.二進(jìn)制轉(zhuǎn)十進(jìn)制(結(jié)果:15)
int s9 = Convert.ToInt32("1111", 2); 7.十六進(jìn)制轉(zhuǎn)十進(jìn)制(結(jié)果:48)
? int s10 = Convert.ToInt32("30", 16); 8.十進(jìn)制轉(zhuǎn)十六進(jìn)制(結(jié)果:f)
string s12 = string.Format("{0:x0}", 15);
? ? ? ? ? ? // 第2種方法:
? ? ? ? ? ? string s12 = convert.ToString(15,16);? 9.二進(jìn)制轉(zhuǎn)十六進(jìn)制(結(jié)果:f)
? string s13 = string.Format("{0:x}", Convert.ToInt32("1111", 2)); 10.字符轉(zhuǎn)十進(jìn)制數(shù)(結(jié)果:65)
? int s14 = Convert.ToInt32('A'); 11.將字符串中第1個(gè)字符轉(zhuǎn)成十進(jìn)制數(shù)(結(jié)果:65)
? string s15 = "AB"; ? ? ? ? ? ? int s16 = Convert.ToInt32(Convert.ToChar(s15[0])); ? ? ? ? ? ? Console.WriteLine(s16);
12.十六進(jìn)制轉(zhuǎn)浮點(diǎn)數(shù)(結(jié)果:0.68)
? byte[] bt = new byte[4] { 0x7b, 0x14, 0x2e, 0x3f };
? ? ? ? ? ? float ff = BitConverter.ToSingle(bt, 0); 13,浮點(diǎn)數(shù)轉(zhuǎn)十六進(jìn)制數(shù)
float f = 0.68f;
? ? ? ? ? ? string str1 = BitConverter.ToString(BitConverter.GetBytes(f)).Replace("-", ""); //結(jié)果:7B142E3F
? ? ? ? ? ? string str2 = BitConverter.ToString(BitConverter.GetBytes(f)); ? ?//結(jié)果:7B-14-2E-3F 14.int 轉(zhuǎn)字符串
int n = 49;
? ? ? ? ? ? string str1 = n.ToString(); ? ? //結(jié)果:49
? ? ? ? ? ? string str2 = n.ToString("x"); ?//結(jié)果:0x31 15.字符串轉(zhuǎn)int
?string str = "31"; ? ? ? ? ? ? int i = Convert.ToInt32(str); ?//結(jié)果:31
16.byte 轉(zhuǎn) int
?byte bt = 0x31; ? ? ? ? ? ? int i = Convert.ToInt32(bt); ?//結(jié)果;49
17.ushort[]轉(zhuǎn)換為float類(lèi)型
ushort[] val ; ? ? ? ? ? ? ? ? ? List<byte> result = new List<byte>(); ? ? ? ? ? ?result.AddRange(BitConverter.GetBytes(val[0])); ? ? ? ? ? ?result.AddRange(BitConverter.GetBytes(val[1])); ? ? ? ? ? ?float JG= BitConverter.ToSingle(result.ToArray(), 0);
18.float轉(zhuǎn)換為ushort[]類(lèi)型
?float value; ? ? ? ? ? ?ushort lowOrderValue = BitConverter.ToUInt16(BitConverter.GetBytes(value), 2); ? ? ? ? ? ?ushort highOrderValue = BitConverter.ToUInt16(BitConverter.GetBytes(value), 0);
到此這篇關(guān)于C#實(shí)現(xiàn)字符串進(jìn)制轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)C# 字符串進(jìn)制轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C#實(shí)現(xiàn)tostring轉(zhuǎn)換成16進(jìn)制的方法
- C#實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制的幾種方式
- C#實(shí)現(xiàn)十六進(jìn)制與十進(jìn)制相互轉(zhuǎn)換以及及不同進(jìn)制表示
- C#實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換
- C# 進(jìn)制轉(zhuǎn)換的實(shí)現(xiàn)(二進(jìn)制、十六進(jìn)制、十進(jìn)制互轉(zhuǎn))
- C#中圖片、二進(jìn)制與字符串的相互轉(zhuǎn)換方法
- C#實(shí)現(xiàn)2~36進(jìn)制轉(zhuǎn)換的完整代碼
相關(guān)文章
C# TabControl手動(dòng)觸發(fā)DrawItem的實(shí)現(xiàn)
本文主要介紹了C# TabControl手動(dòng)觸發(fā)DrawItem的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
C#中嵌入SQLite數(shù)據(jù)庫(kù)的簡(jiǎn)單方法
本文給大家介紹的是C#中嵌入SQLite數(shù)據(jù)庫(kù)的簡(jiǎn)單方法,十分的方便也很實(shí)用,有需要的小伙伴可以參考下。2015-06-06
C#中的問(wèn)號(hào)(?號(hào))用法小結(jié)
這篇文章主要介紹了C#中的問(wèn)號(hào)(?號(hào))用法小結(jié),本文介紹了3種用法,分別作為修飾符、運(yùn)算符的用法,需要的朋友可以參考下2014-07-07
C# 設(shè)計(jì)模式之單例模式歸納總結(jié)
這篇文章主要介紹了C#設(shè)計(jì)模式之單例模式實(shí)例講解,本文講解了單例模式的定義、單例模式的優(yōu)缺點(diǎn),需要的朋友可以參考下2017-04-04
C#實(shí)現(xiàn)ComboBox自動(dòng)匹配字符
本文介紹C#如何實(shí)現(xiàn)ComboBox自動(dòng)匹配字符1.采用CustomSource當(dāng)做提示集合2. 直接使用下拉列表中的項(xiàng)作為匹配的集合,需要了解的朋友可以參考下2012-12-12

