Страница 1 из 1

перевод из 16ой в 10сс

Добавлено: 26 окт 2010, 16:09
fiascko
Ребята, прошу помощи. Необходимо перевести числа из 16ой в 10 сс.
Взялся переводить и вот некоторые проблемы:
1) как переводить отрицательные числа (из 10ой в 16ую)? Калькулятор число FFD6F78C перевел как -2689140. Я думал сначала, что если первые 2 цифры FF, то число отрицательное, но это оказалось неверно.
2) у меня есть таблица с несколькими числами в десятичной и 16ой системе соответственно. Так там число F143F62C4113F42F перевели как 2.4921113696е+005.
Прошу помочь. Очень нужно. Заранее благодарен.

Re: перевод из 16ой в 10сс

Добавлено: 27 окт 2010, 09:47
BBB
1) Отрицательные числа - это "минус один", умноженное на положительное число. Так что никакких проблем нет. "Вумный" же калькулятор, как я понимаю, вообще "не знает" отрицательных шестнадцатиричных чисел, "переводя" знаковое (отрицательное) число в беззнаковое.
2)
Так там число F143F62C4113F42F перевели как 2.4921113696е+005.
Странный перевод у меня тот же калькулятор перевел как 17385009656511067183.
Если же вы переводили на каком-то языке программирования, то, подозреваю, у вас уже не хватает точности (количества цифр) переменной, в которой помещается результат
Но настораживает то, что первое число (начинающееся с 2.49) при всем желании трудно назвать равным числу, начинающемуся с 17385

Re: перевод из 16ой в 10сс

Добавлено: 16 ноя 2010, 16:17
Oleg_Rus
Люди, прежде чем выкладывать тему пробуйте решить ее сами... :mad:

C = a[n] * M^n + a[n-1] * M^(n-1) + ... + a[1] * M + a[0]

Итого, решение сводится к тому, чтобы занести шестнадцатеричное число в массив или строку (что в принципе одно и то же), написать процедуру или функцию по возведению числа в степень и и найти сумму этих произведений...

Если и это сложно, то пишите в личку, постараюсь объяснить максимально доступно :cool: