Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Перевод чисел из hex в decimal и наоборот.  (Прочитано 1801 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lewka_soad

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Даны две колонки чисел
0x01000000 1
0x02000000 2
............
0x0A000000 10
............
0x10000000 16
............
0x7D000000 125
............
0xFC030000 1020
............
0x00040000 1024
и т.д.
Необходимо, используя чистый Си, по 16-ому представлению чисел в левой колонке вывести в 10-ом представлении числа в правой колонке и наоборот.
Никак не пойму как сформировать такое 16-ное представление. Ведь, если сделать обычный перевод в 16-ную систему, то к примеру 1 будет равен 0x1, 1020 - 0x3FC, а 1024 соответственно 0x400.
Помогите или наведите на мысль с ссылками.

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1690
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Перевод чисел из hex в decimal и наоборот.
« Ответ #1 : 04 Декабря 2012, 19:17:03 »
Цитировать
0x01000000 1
0x02000000 2
Вообще бред, ибо:
100000016 = 1677721610
200000016 = 3355443210
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Re: Перевод чисел из hex в decimal и наоборот.
« Ответ #2 : 04 Декабря 2012, 19:38:11 »
Это BIG ENDIAN и LITTLE ENDIAN

1023 = 0x3FF.

В «IBM-совместимых» (на процах x86 / AMD) компьютерах они лежат в памяти в порядке: FF 03 00 00.

А вот в IBM-360 — по-нормальному: 00 00 03 FF.

Надо эти записи соответственно перекодировать не зараз, а по байтам:

FF 03 00 00 —> 0xFF + 0x03 * 256 + 0x00 * 2562 + 0x00 * 2563.

Получится как раз 1023. И т. д.
Делюсь знаниями, но их у меня мало!

Оффлайн lewka_soad

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Перевод чисел из hex в decimal и наоборот.
« Ответ #3 : 04 Декабря 2012, 23:01:14 »
Спасибо, большое. То, что надо. ;)

 

Страница сгенерирована за 0.044 секунд. Запросов: 25.