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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2012, 19:36   #1
Lexman777
 
Регистрация: 30.01.2010
Сообщений: 9
Вопрос В двоичном представлении числа инвертировать последнюю цифру.

Завтра зачёт, а осталось сделать одну задачку... Вроде и не сложная, но я в программировании не силён. Если кто сможет помогите пожалуйста! Вот задачка:

В двоичном представлении числа инвертировать последнюю цифру. (в задании рассматривается тип word)
Замечание. При работе нельзя использовать массивы для хранения цифр двоичного представления чисел. Все действия необходимо выполнить, используя либо арифметические операции “+” или “-“ либо побитовые операции “shl”, “shr”, “and”, “or” или “xor” языка Pascal.
Lexman777 вне форума Ответить с цитированием
Старый 23.01.2012, 20:26   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

если правильно понял задание...
Код:
var n:word;
...
n:=n xor 1;
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 23.01.2012, 21:40   #3
Lexman777
 
Регистрация: 30.01.2010
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
если правильно понял задание...
Код:
var n:word;
...
n:=n xor 1;
Да. Всё правильно поняли.
Lexman777 вне форума Ответить с цитированием
Старый 24.01.2012, 14:38   #4
Lexman777
 
Регистрация: 30.01.2010
Сообщений: 9
По умолчанию

Ну кто сможет мне помочь?
Lexman777 вне форума Ответить с цитированием
Старый 24.01.2012, 14:43   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Ну кто сможет мне помочь?
Вам же написали!
Код:
var n:word;
...
n:=n xor 1;
Чем вам ещё помочь?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 25.01.2012, 07:36   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
n:=n xor 1;
Алгоритмически правильно, так как верно утверждение: A xor 1 = not (A)
Но мне кажется, что в паскале это не прокатит, так как здесь подразумевается логическая запись, а не побитовая.
Я предлагаю такое решение:

Код:
if odd(n) // Если n - нечётное
       then dec(n) // n:=n-1
       else inc(n) // n:=n+1
Только и всего.
В двоичном представлении чётное число заканчивается нулём (4[10] = 100[2])
нечётное число заканчивается единицей (7[10] = 111[2])
Вадим Мошев вне форума Ответить с цитированием
Старый 25.01.2012, 10:42   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Но мне кажется, что в паскале это не прокатит, так как здесь подразумевается логическая запись, а не побитовая.
Вы ошибаетесь. Если в качестве операнда выступают числовые значения (например, тип операнда Byte, Word, Integer, LongInt и т.д.) то операции AND, OR, XOR оперируют именно с БИТОВЫМ представлением числа!

Цитата:
Сообщение от Hacker19_90
Вам же написали!
Цитата:
Код:
var n:word;
...
n:=n xor 1;
Чем вам ещё помочь?
Полностью согласен с Hacker19_90, как говорится, тут добавить нечего!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести числа, из диапазона от n до m у которых, количество единичных разрядов в двоичном представлении числа нечетно sheff123 Помощь студентам 8 05.01.2012 15:35
Взять цифру из числа Kolik317 Общие вопросы Delphi 7 27.09.2009 23:42
Как числа в двоичном виде вывести в столбик по 4 числа? Equalizer Общие вопросы C/C++ 11 27.09.2009 14:15
Найти последнюю цифру числа в С++ Vizavi Помощь студентам 4 27.05.2009 21:24
Найти последнюю цифру от числа в Паскале Карабин Помощь студентам 100 17.05.2009 17:34