Rumah > pembangunan bahagian belakang > C++ > Bagaimana dengan cekap menukar nombor ke pangkalan sewenang -wenang dalam .NET?

Bagaimana dengan cekap menukar nombor ke pangkalan sewenang -wenang dalam .NET?

Barbara Streisand
Lepaskan: 2025-01-28 10:16:12
asal
513 orang telah melayarinya

How to Efficiently Convert Numbers to Arbitrary Bases in .NET?

Dalam .NET, bilangannya secara berkesan ditukar kepada sebarang kemajuan

Menukar nombor perpuluhan ke dalam mana -mana sistem yang lain adalah tugas yang sama dalam pengaturcaraan. Walaupun .NET menyediakan kaedah untuk menukar kepada set penghantaran terhad, pemaju biasanya memerlukan kaedah yang lebih fleksibel, yang menyokong sebarang kemajuan dan mana -mana set aksara.

Convert.ToString kaedah penukaran tersuai

Untuk menukar nombor ke dalam sebarang kemajuan, anda boleh melaksanakan kaedah tersuai, yang melelehkan nombor dalam kemajuan sasaran. Ini adalah versi mudah dari kaedah ini:

Kaedah ini menggunakan nilai yang akan ditukar dan array watak, yang mewakili aksara dalam salur masuk sasaran. Ia mengulangi nilai pengiraan kecuali bilangan sasaran sasaran dan menambah watak yang sepadan dengan rentetan hasil.
public static string IntToString(int value, char[] baseChars)
{
    string result = string.Empty;
    int targetBase = baseChars.Length;

    do
    {
        result = baseChars[value % targetBase] + result;
        value = value / targetBase;
    } 
    while (value > 0);

    return result;
}
Salin selepas log masuk

Gunakan contoh <使用>

Untuk menggunakan kaedah ini, anda boleh lulus nilai nilai nilai dan sasaran, contohnya:

Langkah berjaga -jaga prestasi

// 转换为二进制
string binary = IntToString(5, new char[] { '0', '1' });

// 转换为十六进制
string hex = IntToString(42, 
    new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                 'A', 'B', 'C', 'D', 'E', 'F'});

// 转换为六十进制
string sexagesimal = IntToString(42, 
    new char[] { '0','1','2','3','4','5','6','7','8','9',
    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x'});
Salin selepas log masuk
Kaedah di atas disambungkan untuk membina rentetan hasil dengan rentetan. Untuk jumlah yang besar, ini mungkin perlahan. Versi yang lebih baik akan menggunakan penampan array untuk mengumpul aksara.

Atas ialah kandungan terperinci Bagaimana dengan cekap menukar nombor ke pangkalan sewenang -wenang dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan