Преобразование строкового значения в шестнадцатеричное - PullRequest
3 голосов
/ 05 января 2012

Я делаю заявку в C #. В этом значении у меня есть строка, которая содержит десятичное значение как

string number="12000"; 

Шестнадцатеричный эквивалент 12000 равен 0x2EE0.

Здесь я хочу присвоить это шестнадцатеричное значение целочисленной переменной как

int temp=0x2EE0.

Пожалуйста, помогите мне преобразовать это число. Заранее спасибо.

Ответы [ 5 ]

23 голосов
/ 05 января 2012
string input = "Hello World!";
char[] values = input.ToCharArray();
foreach (char letter in values)
{
    // Get the integral value of the character.
    int value = Convert.ToInt32(letter);
    // Convert the decimal value to a hexadecimal value in string form.
    string hexOutput = String.Format("{0:X}", value);
    Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
}

/* Output:
   Hexadecimal value of H is 48
    Hexadecimal value of e is 65
    Hexadecimal value of l is 6C
    Hexadecimal value of l is 6C
    Hexadecimal value of o is 6F
    Hexadecimal value of   is 20
    Hexadecimal value of W is 57
    Hexadecimal value of o is 6F
    Hexadecimal value of r is 72
    Hexadecimal value of l is 6C
    Hexadecimal value of d is 64
    Hexadecimal value of ! is 21
 */

ИСТОЧНИК: http://msdn.microsoft.com/en-us/library/bb311038.aspx

7 голосов
/ 05 января 2012

Int содержит число, а не представление числа.12000 эквивалентно 0x2ee0:

int a = 12000;
int b = 0x2ee0;
a == b

Вы можете преобразовать строку «12000» в int, используя int.Parse () .Вы можете отформатировать int как шестнадцатеричное с помощью int.ToString ("X") .

5 голосов
/ 05 января 2012

Ну, вы можете использовать класс String.Format для преобразования числа в шестнадцатеричное значение

int value = Convert.ToInt32(number);
string hexOutput = String.Format("{0:X}", value);

Если вы хотите конвертировать строковое ключевое слово в шестнадцатеричное, вы можете сделать это

string input = "Hello World!";
char[] values = input.ToCharArray();
foreach (char letter in values)
{
    // Get the integral value of the character.
    int value = Convert.ToInt32(letter);
    // Convert the decimal value to a hexadecimal value in string form.
    string hexOutput = String.Format("{0:X}", value);
    Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
}
3 голосов
/ 05 января 2012

Если вы хотите преобразовать его в шестнадцатеричный код string, вы можете сделать это как

string hex = (int.Parse(number)).ToString("X");

Если вы хотите поместить только число в шестнадцатеричный код.Это невозможно.Компьютер всегда хранит число в двоичном формате, поэтому при выполнении int i = 1000 он сохраняет 1000 в двоичном виде в i.Если вы поставите hex, он тоже будет бинарным.Так что нет смысла.

1 голос
/ 05 января 2012

вы можете попробовать что-то вроде этого, если оно будет int

string number = "12000";
int val = int.Parse(number);
string hex = val.ToString("X");
...