|
| |
Top ▶ プログラミングサンプル ▶ 2進数、8進数、16進数、36進数の文字列 ⇔ 整数
2進数、8進数、16進数の文字列 ⇒ 整数のサンプルです。
| C# 2進数、8進数、16進数の文字列 ⇒ 整数 |
// 2進数を整数に
int i2 = Convert.ToInt32("1111001100001", 2);
// 8進数を整数に
int i8 = Convert.ToInt32("17141", 8);
// 16進数を整数に
int i16 = Convert.ToInt32("1E61", 16);
|
整数 ⇒ 2進数、8進数、16進数の文字列のサンプルです。
| C# 整数 ⇒ 2進数、8進数、16進数の文字列 |
// 整数を2進数に
string s2 = Convert.ToString(7777, 2);
// 整数を8進数に
string s8 = Convert.ToString(7777, 8);
// 整数を16進数に
string s16 = Convert.ToString(7777, 16);
|
36進数の文字列 ⇒ 整数のサンプルです。
| C# 36進数の文字列 ⇒ 整数 |
// 0〜Zを0〜35に変換(エラー時:0)
private int ChangeZto35(string str)
{
if (str == null) return 0;
int ChangeZto35 = 0;
if (str != "")
{
char c = Convert.ToChar(str.Substring(0, 1));
ChangeZto35 = (int)c - 48;
if (ChangeZto35 > 10) ChangeZto35 -= 7;
if (ChangeZto35 < 0) ChangeZto35 = 0;
if (ChangeZto35 > 35) ChangeZto35 = 0;
}
return ChangeZto35;
}
// 36進数(0〜ZZZZZZZZ)を10進数に変換
private long Convert36to10(string str)
{
str = "00000000" + str.ToUpper();
str = str.Substring(str.Length - 8);
long Convert36to10 = 0;
long l;
int i;
for (int i1 = 0; i1 < 8; i1++)
{
l = (long)Math.Pow(36, 7 - i1);
i = ChangeZto35(str.Substring(i1, 1));
l = i * l;
Convert36to10 += l;
}
return Convert36to10;
}
long lng36 = Convert36to10("1KPQZG2C");
// lng36 : 123456789012
|
整数 ⇒ 36進数の文字列のサンプルです。
| C# 整数 ⇒ 36進数の文字列 |
// 0〜35を0〜Zに変換(エラー時:0)
private string Change35toZ(int intZ)
{
string Change35toZ = "0";
if (intZ > 0 && intZ < 36)
{
if (intZ > 9) intZ += 7;
intZ += 48;
Change35toZ = Convert.ToChar(intZ).ToString();
}
return Change35toZ;
}
// 10進数(0〜2821109907455)を36進数に変換
private string Convert10to36(long lngZ)
{
string Convert10to36 = "";
long l;
int i;
for (int i1 = 7; i1 >= 0; i1--)
{
l = (long)Math.Pow(36, i1);
i = (int)(lngZ / l);
l = i * l;
lngZ -= l;
Convert10to36 += Change35toZ(i);
}
return Convert10to36;
}
string str36 = Convert10to36(123456789012);
// str36 : 1KPQZG2C
|
| |
|
|