На главную страницу

Решения к упражнениям из книги "Язык программирования С" Б. Керниган и Д. Ритчи

Упражнение 3.3.


В представлении чисел с помощью дополнения до двойки наша версия функции itoa не умеет обрабатывать самое большое по модулю отрицательное число, т.е. значение n, равное -(2^длина_слова - 1). Объясните почему это так. Доработайте функцию так, чтобы она выводила это число правильно независимо от системы, в которой она работает.

Комментарий: Задание упражнения не понятно. Пусть например, длина слова = 8 битам, что соотвествует одному байту или типу char. В коде дополненном до двойки, возможные значения числа будут: -128...127. А значение n, равное -(2^длина_слова - 1) = -255. Видно что, это значение гораздо меньше самого минимального.
----------
	
----------

Последнее изменение: 25 май 2011