たるきちのあれこれ









  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