Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2008, 23:04   #1
Юлкунчик
 
Регистрация: 07.12.2007
Сообщений: 5
Печаль Двоичное сложение

Ввести 2 целых числа (знак числа запрашивается отдельно) и выполнить двоичное сложение .Если нужно, перевести числа, представленные в прямом коде, в дополнительный или обратный.

что-то я запуталась... подскажите пожалуйста...
Юлкунчик вне форума Ответить с цитированием
Старый 15.02.2008, 11:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это двоичное сложение:
Код:
var a,b,c:integer;
begin
 c:=a or b
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.02.2008, 19:21   #3
Юлкунчик
 
Регистрация: 07.12.2007
Сообщений: 5
По умолчанию

спасибо....
но я это в общем то знала.....
я запуталась в переводе в двоичную систему счисления, а потом в сложении...
Юлкунчик вне форума Ответить с цитированием
Старый 18.02.2008, 08:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я запуталась в переводе в двоичную систему счисления, а потом в сложении...
А зачем это делать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.02.2008, 11:51   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Юлкунчик Посмотреть сообщение
я запуталась в переводе в двоичную систему счисления, а потом в сложении...
Если речь идет о побитном сложении, то (исходя из 16-битных операндов) это можно реализовать примерно вот так:
Код:
var
    OperandA, OperandB 	: word;
    CarryFlag   		: byte;
    i           		: integer;
    TmpA, TmpB			: word;
	TmpResult, EndResult: word;
    UltimateResult 		: longint;
begin
    CarryFlag := 0;
    OperandA := 34567;
    OperandB := 45678;
    EndResult := 0;

    for i :=  0 to 15 do begin
        TmpA := OperandA AND 1;     			{Берем младшие на настоящий момент}
        TmpB := OperandB AND 1;     			{биты операндов}

        TmpResult := TmpA + TmpB + CarryFlag;   {Складываем с учетом переноса}
        if TmpResult > 1 then begin				{Проверяем, умещается ли результат в 1 бит}
            CarryFlag := 1;                     {Если нет, ставим флаг переноса}
            TmpResult := TmpResult AND 1;       {И "вталкиваем" результат в 1 бит}
        end
        else begin
            CarryFlag := 0;                     {Если да - сбрасываем флаг переноса}
        end;

        TmpResult := TmpResult shl i;           {Сдвигаем результат в нужный разряд}
        EndResult := EndResult OR TmpResult;

        OperandA := OperandA shr 1;             {Сдвигаем операнды на 1 бит вправо}
        OperandB := OperandB shr 1;             {другими словами, делим на 2}
    end;

    {И в самом конце опять учитываем перенос}
    UltimateResult := CarryFlag;
    UltimateResult := UltimateResult shl 16;
    UltimateResult := UltimateResult + EndResult;

    Writeln(UltimateResult);
end.
В результате получим 80245.
B_N вне форума Ответить с цитированием
Старый 29.02.2008, 20:34   #6
Юлкунчик
 
Регистрация: 07.12.2007
Сообщений: 5
По умолчанию

Спасибо!!!!!))))))очень сильно помогли!!!!!!
Юлкунчик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Используя двоичное счисление, произвести вычитание freddy Помощь студентам 3 02.06.2008 22:41
Сложение Droid Общие вопросы Delphi 14 07.05.2008 13:23
Преобразование десятичного числа в двоичное. Quize Паскаль, Turbo Pascal, PascalABC.NET 4 12.04.2008 16:09
Сложение значений Torrenter Компоненты Delphi 2 11.01.2008 19:14
C++. Перевод десятичного числа в двоичное Panterka Помощь студентам 15 12.12.2007 15:04