0 / 0 / 1
Регистрация: 24.09.2012
Сообщений: 85
|
|
1 | |
Типы данных, определяемые пользователем25.11.2012, 23:32. Показов 4042. Ответов 24
Метки нет (Все метки)
3. Разработать битовое поле, описывающее состояния элементов прибора. Ввести с консоли число в 16-ричной системе счисления, преобразовать его в битовое поле за счёт использования объединения. Вывести на консоль состояния элементов прибора, соответствующие состоянию битов во введённом числе.
(MP3 проигрыватель-диктофон. Элементы: воспроизведение вкл/выкл, пауза вкл/выкл, запись вкл/выкл.) По возможности . можете написать на си
0
|
25.11.2012, 23:32 | |
Ответы с готовыми решениями:
24
Структуры, объединения и определяемые пользователем типы. Массивы структур Манипуляторы, определяемые пользователем Типы данных: есть ли универсальный тип, который может заменить все типы данных в Си? Типы данных: чем отличается тип данных int от float? |
26.11.2012, 00:24 | 2 | |||||
Это форум С++, поэтому напишу на С++
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
|
26.11.2012, 00:59 | 4 |
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
|
26.11.2012, 01:05 | 6 |
Сообщение было отмечено как решение
Решение
не поняла. Я говорю что мне непонятно это предложение, и поэтому я не понимаю как помочь человеку. Хотя с удовольствием бы ему написала эту программу. Вот ты можешь мне растолковать это предложение?
0
|
26.11.2012, 01:06 | 8 |
просто для того, чтобы изучить язык. А то так можно довольно долго программировать и не подозревать, что в языке С++ существуют объединения, битовые поля и поразрядные операторы.
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
|
26.11.2012, 01:13 | 9 |
мало того, что преобразовать число в битовое поле, так еще и с помощью операции объединения.
Преподы там упоротые сидят что ли?
0
|
0 / 0 / 1
Регистрация: 24.09.2012
Сообщений: 85
|
|
26.11.2012, 01:19 [ТС] | 10 |
Все . я разобрался . спасибо . мне бы вот эту помочь Рекурсия: удаление из строки всех лишние пробелов
0
|
26.11.2012, 01:26 | 11 |
Во, о чём я говорю. Нынешние изучающие С++, даже не поняли, что задание требует использовать union. Но конечно, зато про std::bitset все знают и что-то на преподов катят. Извиняюсь если что.
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
|
26.11.2012, 01:41 | 12 |
Если ты про ЯП Си, то напрасно. Я уверена, что могу использовать его возможности как минимум не хуже тебя. Кстати, было бы разумнее не структуру вложить в объединение, а наоборот - объединение в структуру (как это обычно и делается). О птичках.
Добавлено через 3 минуты + еще спецификатор %x подразумевает тип unsigned int (который далеко не всегда, точнее почти никогда) не равен двум байтам.
0
|
26.11.2012, 02:09 | 14 |
не знаю. а что придётся читать байт и сохранять только младший? или хранить эти биты в int?
Выбор то мотивирован условием, требующим вводить с консоли число в 16ричной системе. Можно конечно вообще тупо читать 2 символа (0..9a..f) и переводить их в число из 16й системы. А вот с этим ну никак не могу согласиться. Объединение каких элементов в структуру вкладывать? У меня объединение байта и вложенной структуры. Всё логично: благодаря объединению к одной и той же переменной можно обращаться или как к байту или как к структуре битов. А иначе что за белиберда получится?
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
||||||
26.11.2012, 03:33 | 15 | |||||
Kuzia domovenok, в том-то и дело, что под объединением в ТЗ скорее всего подразумевается именно побитовое ИЛИ. Я вообще не понимаю зачем и для чего (и как это сюда прилепить, чтобы было похоже на программу) в данном случае необходимо использовать union. Вот мой вариант
тут разработано есть ввод есть преобразование есть вывод всё по ТЗ
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
|
26.11.2012, 03:44 | 17 |
Kuzia domovenok, ну почему? я же учила. Я что неправильно учила? вот вики http://ru.wikipedia.org/wiki/Объединение_множеств. В примере два однородных множества битов. Операция побитовое ИЛИ и есть объединение двух множеств.
0
|
26.11.2012, 03:52 | 18 |
Ой, а у меня тоже ссылочка имеется! http://ru.wikipedia.org/wiki/%... 1%8B%D1%85)
Проблема в том, что объединения(union) в языке Си действительно чаще всего используются для организации доступа к битам в байте, байтам в слове и.т.д. Это собственно причина, по которой в языке Си++ есть слово union. Поэтому его использование и требует препод для задания "Разработать битовое поле...". Собственно это первая моя ассоциация: доступ к битам - используй union. А вот как связаны битовые поля и эти твои логические операции объединения? Довольно слабо... Я бы сказал притянуто за уши.
0
|
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
|
||||||
26.11.2012, 04:03 | 19 | |||||
так я же их и не связывала я связывала (и связываю) объединение и битовое ИЛИ. Кантор, знакомая фамилия? 2 переменные - 2 однородных множества битов. Объединение переменных есть объединение множеств битов. Я же специально просила уточнить топик стартера разъяснить ТЗ. В общем - то как я его поняла, так и написала. А вот с какой целью использовать (как притянуть за уши) union я не понимаю. Изуродовать можно что угодно, но зачем? Что мешает написать так?
0
|
26.11.2012, 04:28 | 20 |
Оп-па! Ну, во-первых, typedef здесь ну совсем не к месту. Да, его иногда пишут, но после объявления должно идти имя - "псевдоним" для типа данных. Но суть не в этом.
Во-вторых, почитай, что такое union в языке С++. Почитай, и скажи, если этот случай использования union (union байта и бит.полей) ты считаешь притянутым за уши, то приведи пример типичного (по-твоему) использования union. В-третьих, почитай, что такое union в языке С++, и скажи, зачем создавать union из одного элемента. Ссылку я дал.
0
|
26.11.2012, 04:28 | |
26.11.2012, 04:28 | |
Помогаю со студенческими работами здесь
20
Типы Данных Типы данных типы данных Типы данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |