Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/40: Рейтинг темы: голосов - 40, средняя оценка - 4.50
заставил Бендера
 Аватар для IIIa66uMEM6eP
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6

Побитовые операции, работа с шестнадцатеричной записью

27.03.2011, 21:21. Показов 8844. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Цель лабы обработка числовой информации, работа с побитовыми операциями.
Сама задача: Дано длинное целое неотрицательное число. Заменить каждую цифру F в шестнадцатеричной записи этого числа цифрой 7.
Что прошу: собственно помощь в выполнении, алгоритм или кусок кода - кто чем поможет.
PS: функции использовать нельзя..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2011, 21:21
Ответы с готовыми решениями:

работа с записью числа в шестнадцатеричной сс
Доброго времени суток. Помогите, пожалуйста, с лабораторкой. На ввод даётся целое число. Необходимо проверить, является ли запись этого...

Определить является ли текст шестнадцатеричной записью числа, кратного 5
здравия всем, вообщем есть задачка на литерные переменные: В заданный непустой текст входят только цифры и буквы. Длина текста не...

Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++)
Помогите пожалуйста перевести из Pascal в С++ Задан текст, в который входят только цифры и буквы. Определить, является ли этот текст...

26
 Аватар для xAtom
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
29.03.2011, 16:11
Студворк — интернет-сервис помощи студентам
Попробуйте как вариант задачи Вашей.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 // нa будущее приучайтесь битовые операции выполнять в положительных числах unsigned
 typedef unsigned int  uint;
 
 uint num = 0xF345FAEF;  // пример дано
 uint set  = 0x7;   // заменить на новую тетраду
 uint cur  = 0xF;  // найти эту тетраду
 
 uint cbit  = 0x0;
 uint cnt   = 0;
 for( ; num != 0x0; num >>= 4, cnt += 4) {  // это 4-ка тетрада по ней выбиваем
         if(! (num & 0xF ^ cur)) 
       cbit |= (0xF &  set) << cnt;
        else
       cbit |= (0xF &  num) << cnt;
 }
 // проверка на изменение
 printf("current = %X,  sets = %X\n", 0xF345FAEF, cbit);
Удачи !
1
заставил Бендера
 Аватар для IIIa66uMEM6eP
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6
29.03.2011, 17:38  [ТС]
ValeryS, ваша ирония тут не к месту. код си и си ++ сильно отличаются.
спасибо за участие, все понятно.
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
30.03.2011, 14:18
Неправильно - number и mask должны быть типа unsigned int
Иначе отрицательные числа фиг знает как сдвигаются

Да и по условию задачи - на вход подается беззнаковое число

Добавлено через 1 минуту
xAtom вот понимает что надо в unsigned int работать

Добавлено через 1 минуту
код си и си ++ сильно отличаются.
Это смотря как применять топор - можно мясо рубить, а может и старушек

В C++ никто не запрещает использовать printf()
Поэтому с минимальными изменениями код C можно использовать как C++
0
 Аватар для kazak
3606 / 2746 / 356
Регистрация: 11.03.2009
Сообщений: 6,318
30.03.2011, 14:24
Цитата Сообщение от odip Посмотреть сообщение
Неправильно - number и mask должны быть типа unsigned int
на данную задачу это не влияет
Цитата Сообщение от odip Посмотреть сообщение
Иначе отрицательные числа фиг знает как сдвигаются
очень даже изветсно как сдвигаются
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21287 / 8312 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
30.03.2011, 14:46
Цитата Сообщение от kazak Посмотреть сообщение
очень даже изветсно как сдвигаются
Сдвиг вправо - он unspecified по части заполнения старших битов. Но поскольку дальше накладывается маска и откидываются старшие биты, то результат операции сдвига вправо и наложения маски оказывается вполне определённым. В данной программе единственное место, которое отработает (или может отработать) неправильно - это "cin >> number" для чисел, которые больше, чем 2^31

А вообще в битовых операциях знаковость критична только для сдвига вправо. Для всех остальных операций пофигу
0
 Аватар для kazak
3606 / 2746 / 356
Регистрация: 11.03.2009
Сообщений: 6,318
30.03.2011, 15:26
Цитата Сообщение от Evg Посмотреть сообщение
Сдвиг вправо - он unspecified по части заполнения старших битов.
Это по стандарту?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21287 / 8312 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
30.03.2011, 15:39
Цитата Сообщение от kazak Посмотреть сообщение
Это по стандарту?
Да. Говорится, что он может быть либо логическим, либо арифметическим. Постфактум на всех "нормальных" архитектурах для беззнаковых чисел делается логический сдвиг, для знаковых - арифметический
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2011, 15:39

Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (перевод с Pascal)
var b:set of char; a:string; c,sum,i,f:integer; begin b:=; readln (a); for i:=1 to length(a) do if not(a in b) then...

Определить для строки b$, является ли она правильной записью целого в шестнадцатеричной системе счисления
Определить для строки b$, является ли она правильной записью целого числа без знака в шестнадцатеричной системе счисления.

Побитовые операции
Выбрать алгоритм, составить его блок-схему и программу для решения выбранного варианта задания. Во всех вариантах предполагается, что...

Побитовые операции в с++
здравствуйте! не могу понять, почему когда я применяю к числу a=0b01111101 (в десятичной форме а=125) операцию дополнение (~a) , то мне...

Побитовые операции
помогите пожалуйста решить задачу. 1) с помощью побитовых операций реализовать вызов функции swap(n) языка pascal. ЗАРАНЕЕ СПАСИБО!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru