На главную страницу
Решения к упражнениям из книги "Язык программирования С" Б. Керниган и Д. Ритчи
Упражнение 3.3.
В представлении чисел с помощью дополнения до двойки наша версия функции
itoa не умеет обрабатывать самое большое по модулю отрицательное число,
т.е. значение n, равное -(2^длина_слова - 1). Объясните почему это так.
Доработайте функцию так, чтобы она выводила это число правильно
независимо от системы, в которой она работает.
Комментарий: Задание упражнения не понятно. Пусть например,
длина слова = 8 битам, что соотвествует одному байту или типу char.
В коде дополненном до двойки, возможные значения числа будут:
-128...127. А значение n, равное -(2^длина_слова - 1) = -255.
Видно что, это значение гораздо меньше самого минимального.
----------
----------
Последнее изменение: 25 май 2011