如何在C#中的十六进制和十进制之间转换数字?
时间:2020-03-05 18:56:27 来源:igfitidea点击:
如何在C#中的十六进制数和十进制数之间转换?
解决方案
回答
String stringrep = myintvar.ToString("X"); int num = int.Parse("FF", System.Globalization.NumberStyles.HexNumber);
回答
看来你可以说
Convert.ToInt64(value, 16)
从十六进制获取小数。
另一种方法是:
otherVar.ToString("X");
回答
从Geekpedia:
// Store integer 182 int decValue = 182; // Convert integer 182 as a hex in a string variable string hexValue = decValue.ToString("X"); // Convert the hex string back to the number int decAgain = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
回答
十六进制->十进制:
Convert.ToInt64(hexValue, 16);
十进制->十六进制
string.format("{0:x}", decValue);
回答
要将十进制转换为十六进制,请执行以下操作...
string hexValue = decValue.ToString("X");
要将十六进制转换为十进制,请执行以下任一操作:
int decValue = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
或者
int decValue = Convert.ToInt32(hexValue, 16);
回答
static string chex(byte e) // Convert a byte to a string representing that byte in hexadecimal { string r = ""; string chars = "0123456789ABCDEF"; r += chars[e >> 4]; return r += chars[e &= 0x0F]; } // Easy enough... static byte CRAZY_BYTE(string t, int i) // Take a byte, if zero return zero, else throw exception (i=0 means false, i>0 means true) { if (i == 0) return 0; throw new Exception(t); } static byte hbyte(string e) // Take 2 characters: these are hex chars, convert it to a byte { // WARNING: This code will make small children cry. Rated R. e = e.ToUpper(); // string msg = "INVALID CHARS"; // The message that will be thrown if the hex str is invalid byte[] t = new byte[] // Gets the 2 characters and puts them in seperate entries in a byte array. { // This will throw an exception if (e.Length != 2). (byte)e[CRAZY_BYTE("INVALID LENGTH", e.Length ^ 0x02)], (byte)e[0x01] }; for (byte i = 0x00; i < 0x02; i++) // Convert those [ascii] characters to [hexadecimal] characters. Error out if either character is invalid. { t[i] -= (byte)((t[i] >= 0x30) ? 0x30 : CRAZY_BYTE(msg, 0x01)); // Check for 0-9 t[i] -= (byte)((!(t[i] < 0x0A)) ? (t[i] >= 0x11 ? 0x07 : CRAZY_BYTE(msg, 0x01)) : 0x00); // Check for A-F } return t[0x01] |= t[0x00] <<= 0x04; // The moment of truth. }
回答
这并不是真正最简单的方法,但是此源代码使我们可以纠正任何类型的八进制数,即23.214、23和0.512等。希望这能够帮到你..
public string octal_to_decimal(string m_value) { double i, j, x = 0; Int64 main_value; int k = 0; bool pw = true, ch; int position_pt = m_value.IndexOf("."); if (position_pt == -1) { main_value = Convert.ToInt64(m_value); ch = false; } else { main_value = Convert.ToInt64(m_value.Remove(position_pt, m_value.Length - position_pt)); ch = true; } while (k <= 1) { do { i = main_value % 10; // Return Remainder i = i * Convert.ToDouble(Math.Pow(8, x)); // calculate power if (pw) x++; else x--; o_to_d = o_to_d + i; // Saving Required calculated value in main variable main_value = main_value / 10; // Dividing the main value } while (main_value >= 1); if (ch) { k++; main_value = Convert.ToInt64(Reversestring(m_value.Remove(0, position_pt + 1))); } else k = 2; pw = false; x = -1; } return (Convert.ToString(o_to_d)); }