Функция преобразовать десятичное число в шестнадцатиричное
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Функция преобразовать десятичное число в шестнадцатиричное - 2010-10-02 18:24:02.170000
|
|
|
ATAMAN200
Сообщений: 33
Оценки: 0
Присоединился: 2010-08-30 21:13:08.153333
|
Излазил всё что можно не могу найти функцию преобразовать десятичное число в шестнадцатиричное. Наверное такой фукции нету.
|
|
|
RE: Функция преобразовать десятичное число в шестнадцатиричное - 2010-10-02 19:15:13.790000
|
|
|
hromjo_forever
Сообщений: 119
Оценки: 0
Присоединился: 2010-08-02 12:45:32.986666
|
как вариант написать свою?
|
|
|
RE: Функция преобразовать десятичное число в шестнадцатиричное - 2010-10-02 19:17:35.806666
|
|
|
Klofelin
Сообщений: 68
Оценки: 0
Присоединился: 2010-09-03 20:58:52.116666
|
quote:
ORIGINAL: ATAMAN200 Наверное такой фукции нету. Конечно нету. Потому что число нельзя "преобразовать" в то же самое число. Изменить представление числа можно. Если на С, то смотри спецификаторы формата для функций printf, fprintf, sprintf (в зависимости куда тебе выводить надо). Если на С++, то смотри "манипуляторы ввода-вывода".
|
|
|
RE: Функция преобразовать десятичное число в шестнадцатиричное - 2010-10-03 14:45:22.086666
|
|
|
yurket
Сообщений: 69
Оценки: 0
Присоединился: 2009-05-04 23:47:54.993333
|
quote:
ORIGINAL: ATAMAN200 Излазил всё что можно не могу найти функцию преобразовать десятичное число в шестнадцатиричное. Наверное такой фукции нету. молодец… писал давно что-то похожее… может подойдет…. // "переворачивает" символы в строке s
void reverse (char s[])
{
int c, i, j;
for (i = 0, j = strlen(s)-1; i < j; i++, j--)
c = s[i], s[i] = s[j], s[j] = c;
}
/* преобразовывает целое число х в его символьное представление
в системе счисления с основанием numNot и помещает результат в строку s */
void itob(int n, char *s, int numNot)
{
int i = 0, sign;
if ((sign = n) < 0)
n = -n;
do{
s[i++] = (n % numNot >= 10)? (n % numNot + 'A' - 10) : (n % numNot + '0');
}while ((n/=numNot) > 0);
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
}
|
|
|
RE: Функция преобразовать десятичное число в шестнадцатиричное - 2010-10-03 14:46:48.913333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Велосипед - это, конечно, хорошо. Но зачем? - http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/
|
|
|
RE: Функция преобразовать десятичное число в шестнадцатиричное - 2010-10-03 15:19:05.706666
|
|
|
Klofelin
Сообщений: 68
Оценки: 0
Присоединился: 2010-09-03 20:58:52.116666
|
Еще к ссылке можно добавить , если число надо получить с префиксом "0х", то в спецификатор формата надо добавить "#".
int dec = 7654321;
char hex[16];
sprintf(hex, "%#x", dec);
теперь в строке "hex" 0x74cbb1
|
|
|
RE: Функция преобразовать десятичное число в шестнадцатиричное - 2010-10-03 22:34:41.316666
|
|
|
yurket
Сообщений: 69
Оценки: 0
Присоединился: 2009-05-04 23:47:54.993333
|
quote:
ORIGINAL: _SaZ_ Велосипед - это, конечно, хорошо. Но зачем? согласен… велосипеды это не круто… начинал читать K&R, и там любезно предлагалось написать аналог в качестве тренировки… потренировался…
|
|
|
RE: Функция преобразовать десятичное число в шестнадцатиричное - 2010-10-04 01:23:45.373333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Когда тренируешься - не спрашиваешь на форуме. Тем более, что ТС не задумывался над такой темой, как формат хранения чисел в памяти.
|
|
|
|
|