|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.03.2011, 22:34 | #1 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
работа с битами
Имеются переменные a и b:
Код:
P.S. В c++ переменная, занимающая 1 байт имеет тип char или unsigned char? и только? Правильно? За исключением, что в каком-то файле имеется typedef, меняющий char на byte |
07.03.2011, 22:53 | #2 |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
Код:
Единственный способ стать умнее - играть с более умным противником.
|
07.03.2011, 23:05 | #3 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
Тут очень важна скорость, чтобы это всё происходило максимально быстро.
|
08.03.2011, 00:06 | #4 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Sam Gold
Цитата:
2Dimarik если я тя правильно понял (выполнить побитовое сложение конкретных битов), то вот Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
08.03.2011, 10:10 | #5 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
нужно ^ конкретных битов сделать. Неправильно в самом начале выразился. Но идея понятна. Я думал что есть способ быстрее, позволяющий конкретно к каждому биту обращаться без этих сдвигов.
|
08.03.2011, 12:43 | #6 | ||
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Dimarik
Цитата:
Цитата:
Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
||
08.03.2011, 15:02 | #7 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
1. Прочитал про объединения в книге Стивена Праты. Пишет что объединения - те же самый структуры, только там переменный должны быть одного типа. И ещё он в примере писал что когда инициализацию проводишь, не надо писать union DATA a, b;, а просто DATA a, b; или можно и так и так?
2. а как понять эту строку unsigned b0 : 1? никогда не сталкивался с типом unsigned. unsigned int, char и т.д. видел, но просто unsigned - нет. и что значит :1??? 3. как вообще работает этот код? a.val = 5 - ну это понятно, а потом что? побитово расписывается? Если не трудно, подскажи где можно поподробней прочитать. 4. Я малость изменил код для решения малость другой задачи и... какая-то бредятина получалась. Дело в том что внутри сделал не b0,b1...b7, амассив, чтобы можно было циклом пройтись Код:
Код:
|
08.03.2011, 15:11 | #8 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
Плохо читал Прату. В объединении поля могут быть разного типа. Размер объединения это размер поля, у которого тип данных имеет больший размер. Например
Код:
|
08.03.2011, 16:21 | #9 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
элементы находящиеся в объединении находятся в 1ой области памяти и изменение любого из них приведет к изменению других.
тут изменение конкретного бита в битовом поле, повлечет изменение этого же бита в переменной val. |
08.03.2011, 16:31 | #10 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
как я уже понял, это битовые поля (когда : 1)
а вот тут struct { unsigned b[8]; }; если напишу : 1 - компилятор ругаться начинает |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с битами | тотошкин | Общие вопросы C/C++ | 2 | 22.04.2010 12:06 |
Работа с битами. | Masip | Общие вопросы Delphi | 2 | 13.04.2010 13:03 |
Работа с битами | viktory | Помощь студентам | 8 | 02.10.2009 18:33 |
Работа с битами | alexmikt | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 25.09.2009 13:24 |
Работа с битами в C | dmitmal | Общие вопросы C/C++ | 5 | 20.05.2009 04:27 |