|
![]() |
#1 |
Участник
|
Можно немного упростить этот метод
X++: #DEFINE.HEXDIGITS('0123456789ABCDEF') static str 12 int2Hex(int iValue, int digits = 0 ) { str 12 result = ''; ; if (iValue < 0) { digits = 8; } while (iValue != 0) { result = subStr(#HEXDIGITS, iValue & 0xF + 1, 1) + result; iValue = iValue >> 4; if (iValue == -1 && strLen(result) == digits) { break; } } result = strRep('0', digits - strLen(result)) + result; return result; } Последний раз редактировалось demianimp; 29.12.2016 в 15:00. Причина: лишнее условие iValue > 0xF |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#2 |
Участник
|
можно еще упростить, если использовать контейнер или массив.
не факт, что это упрощение сделает код быстрее. и что-то не так с условием - если значение iValue > 0xF, то оно точно не равно 0 X++: while (iValue > 0xF || iValue != 0) |
|
![]() |
#3 |
Участник
|
|
|
Теги |
int2hex |
|
![]() |
||||
Тема | Ответов | |||
Прочитать сформированный GUID | 2 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|