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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2010, 14:14   #1
Unique
Пользователь
 
Регистрация: 27.08.2010
Сообщений: 16
Сообщение Побитовые операции

Привет всем. Возникло затруднение в решении задачи:

Дано длинное целое неотрицательное число. Заменить каждую цифру F в шестнадцатеричной записи этого числа цифрой 7.

Кто поможет чем?

пс: язык паскаль)
Unique вне форума Ответить с цитированием
Старый 29.08.2010, 14:20   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Мож так?
Код:
program forunique;
uses crt;
var
    chislo: string;
    i: integer;
begin
    clrscr;
    Writeln('Введите число:');
    Read (chislo);
    Readln;
    for i := 1 to length(chislo);
    begin
        if chislo[i] = 'F' then
           chislo[i] := '7';
    end;
    Writeln ('chislo: ', chislo);
    ReadKey;
end.
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 29.08.2010, 14:40   #3
Unique
Пользователь
 
Регистрация: 27.08.2010
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
Мож так?
Код:
program forunique;
uses crt;
var
    chislo: string;
    i: integer;
begin
    clrscr;
    Writeln('Введите число:');
    Read (chislo);
    Readln;
    for i := 1 to length(chislo);
    begin
        if chislo[i] = 'F' then
           chislo[i] := '7';
    end;
    Writeln ('chislo: ', chislo);
    ReadKey;
end.

Прочитай пожалуйста название темы еще раз)
Unique вне форума Ответить с цитированием
Старый 29.08.2010, 18:50   #4
|{ot
Форумчанин
 
Аватар для |{ot
 
Регистрация: 09.03.2008
Сообщений: 127
По умолчанию

Код:
var
 i, buf, we, tp: integer;
 
...............

begin

.............
;целое число(в данном случае) = 4байта. 1байт = 2знака в шестнадцатеричной системе. 

we:=15;//we=0fh=0xF
tp:=7;

REPEAT
buf:=i AND we;//выделил текущий символ в шестнадцатеричной системе
if (buf XOR we)=0 then //проверяю на F
  begin
    i:=i AND NOT we;//обнулил текущий символ
    i:=i OR tp;//записал туда 7
  end;

we:=we shl 4;//передвигаюсь на следующий
tp:=tp shl 4;

UNTIL we=0;//ушёл за приделы разрядности числа.. =0

................

end.
Где то так... Писал здесь, ошибки уж исправиш, а алгоритм такой..
|{ot вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Побитовые операции С++ Defa4ka Помощь студентам 4 22.06.2010 14:55
побитовые операции Александе еть я Общие вопросы C/C++ 2 18.04.2010 13:31
побитовые операции Dimarik Общие вопросы C/C++ 7 16.04.2010 19:27
Побитовые операции WinterLord Общие вопросы C/C++ 1 12.10.2008 22:39