Bagaimana Anda mengonversi antara angka heksadesimal dan angka desimal dalam C #?
c#
hex
type-conversion
decimal
Andy McClrolley
sumber
sumber
int.Parse
tidak memiliki opsi bagi Anda untuk menentukan basis sebagaiint
, hanya sebagai salah satu dari beberapa yang validNumberStyles
. Untuk base 16, baik-baik saja, tetapi sebagai solusi umum, ada baiknya untuk mengetahui bagaimana keduanya bekerja.Hex -> desimal:
Desimal -> Hex
sumber
Convert.ToInt64(hexValue, 16);
adalah ia akan melakukan konversi jika0x
awalan ada atau tidak, sedangkan, beberapa solusi lain tidak.Sepertinya Anda bisa mengatakannya
untuk mendapatkan desimal dari hexdecimal.
Cara sebaliknya adalah:
sumber
Jika Anda menginginkan kinerja maksimum saat melakukan konversi dari hex ke angka desimal, Anda dapat menggunakan pendekatan dengan tabel nilai hex-to-desimal yang sudah diisi sebelumnya.
Berikut adalah kode yang menggambarkan ide itu. Tes kinerja saya menunjukkan bahwa itu bisa 20% -40% lebih cepat daripada Convert.ToInt32 (...):
sumber
Dari Geekpedia :
sumber
sumber
Hex ke Konversi Desimal
Konversi Desimal ke Hex
Untuk lebih jelasnya Periksa artikel ini
sumber
sumber
Ini bukan cara yang paling mudah tetapi kode sumber ini memungkinkan Anda untuk memperbaiki semua jenis nomor oktal yaitu 23.214, 23 dan 0.512 dan seterusnya. Semoga ini bisa membantu Anda ..
sumber
Coba gunakan BigNumber di C # - Merupakan bilangan bulat bertanda besar yang sewenang-wenang.
Program
Keluaran
Kemungkinan Pengecualian,
ArgumentNullException - nilai adalah nol.
FormatException - nilai tidak dalam format yang benar.
Kesimpulan
Anda dapat mengonversi string dan menyimpan nilai dalam BigNumber tanpa batasan tentang ukuran angka kecuali jika string kosong dan non-analphabets
sumber
Jika itu adalah string hex yang sangat besar di luar kapasitas integer normal:
Untuk .NET 3.5, kita bisa menggunakan kelas BigInteger BouncyCastle:
.NET 4.0 memiliki kelas BigInteger .
sumber
Versi saya adalah saya pikir sedikit lebih dimengerti karena pengetahuan C # saya tidak begitu tinggi. Saya menggunakan algoritma ini: http://easyguyevo.hubpages.com/hub/Convert-Hex-to-Decimal (Contoh 2)
sumber
Ubah biner menjadi Hex
sumber
Metode ekstensi untuk mengubah array byte menjadi representasi hex. Ini mengisi setiap byte dengan nol di depan.
sumber
Inilah fungsi saya:
sumber
Convert
metode ekstensi sehingga orang dapat menulis:int hexa = Convert.ToHexadecimal(11);
=)Solusi saya agak seperti kembali ke dasar-dasar, tetapi ia bekerja tanpa menggunakan fungsi bawaan untuk mengkonversi antara sistem angka.
sumber
sumber