![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
Имеются переменные a и b:
Код:
P.S. В c++ переменная, занимающая 1 байт имеет тип char или unsigned char? и только? Правильно? За исключением, что в каком-то файле имеется typedef, меняющий char на byte |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
![]() Код:
Единственный способ стать умнее - играть с более умным противником.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
Тут очень важна скорость, чтобы это всё происходило максимально быстро.
|
![]() |
![]() |
![]() |
#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 |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
нужно ^ конкретных битов сделать. Неправильно в самом начале выразился. Но идея понятна. Я думал что есть способ быстрее, позволяющий конкретно к каждому биту обращаться без этих сдвигов.
|
![]() |
![]() |
![]() |
#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 |
||
![]() |
![]() |
![]() |
#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, амассив, чтобы можно было циклом пройтись Код:
Код:
|
![]() |
![]() |
![]() |
#8 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]()
Плохо читал Прату. В объединении поля могут быть разного типа. Размер объединения это размер поля, у которого тип данных имеет больший размер. Например
Код:
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
![]()
элементы находящиеся в объединении находятся в 1ой области памяти и изменение любого из них приведет к изменению других.
тут изменение конкретного бита в битовом поле, повлечет изменение этого же бита в переменной val. |
![]() |
![]() |
![]() |
#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 |