2013-05-14 2 views
1

Как я могу взять в качестве строки значительную часть числа hex/ulong?C# - преобразовать в строку значительную часть из значения hex/ulong

Например, если у меня есть 0x00000321321, я хочу получить «321321».

Если я пытаюсь что-то вроде:

ulong x = 0x0000023632763; 
string s = x.toString(); 

я 593700707, так что это не то, что я хочу.

Возможно ли это?

Спасибо!

+0

См шестнадцатеричное ("X") Формат спецификатора: http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#XFormatString –

+0

ToString() должна быть ToString() – Henrik

ответ

5

Используйте ToString(string format) переопределение с standard hexadecimal formatting"x", наряду с TrimStart(), чтобы избавиться от ведущих нулей: (. Благодаря Keith N. за указание Trim не обязательно)

string s = x.ToString("x"); 

+4

не нуждается в обрезке .... –

+0

Помню, я уже пробовал это. Он работает, но не для таких значений, как 0x003DEF. Я попробую снова. Благодарю. – darkdante

+1

Очевидно, что я делал что-то неправильно. Я думаю, что я пробовал это на шестнадцатеричной строке, а не на шестнадцатеричном значении, поэтому он не работал. Спасибо вам всем! :) – darkdante

3

Как насчет x.toString ("x")? У меня нет C#, чтобы попробовать, но это должно выводить число в шестнадцатеричном формате. См. docs.

1

очень простой ... в строку есть много вариантов о том, как создавать строки ...

x.ToString("X"); 

он преобразует значительную часть. Только выбор x или X контролирует, получаете ли вы заглавные буквы или нет для шестнадцатеричных цифр.

1

ToString поддерживает стандартный формат nnumeric. Вот е MSDN link

int value; 

value = 0x2045e; 
Console.WriteLine(value.ToString("x")); 
// Displays 2045e 
Console.WriteLine(value.ToString("X")); 
// Displays 2045E 
Console.WriteLine(value.ToString("X8")); 
// Displays 0002045E 
Смежные вопросы