Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Как паскаль рассматривает числа


Автор: MaKeGoRR 18.1.2014, 17:35
Почему если ввести -255, паскаль рассматривает как 1
Код

Program AddPb_s;
Uses CRT;
var
ab,bb,xb : Byte;
ch : Char;

begin
Writeln(' Вычислить: x = a + b; a,b,x : Byte;');
Write('Введите значение a [0..255] ==== > ');
Readln(ab);
Write('Введите значение b [0..255] ==== > ');
Readln(bb);
xb := ab+bb;
Write ('Паскаль: x = ',xb);
Writeln (' = ', ab, '+', bb);
ch:=ReadKey;
end.

Автор: Poseidon 18.1.2014, 19:42
Вот даже в коде прописано "Введите значение [0..255]", а удивляетесь, почему при -255 работает не правильно.

Автор: MaKeGoRR 18.1.2014, 19:44
не почему не правильно,а почему 1
как получается эта единица?

Автор: Ромаха 19.1.2014, 16:55
Все очень просто..
Вся фишка в дополнительном коде..
255(10) = 11111111(2) // в скобочках я пишу основание системы
Теперь инвентируем : 00000000(2)
Теперь +1 : 00000001(2)

В 1-ом бите 0 => число положительное.. и это 1-ка..

Удачи :)



Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Как-паскаль-рассматривает-числа-id52da9152ae201597548b4567#findElement_E7045_52dbd93fae2015d661175ea0_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)