Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Битовое присвоение 
:(
    Опции темы
TheDestroyer
Дата 10.4.2009, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Подскажите пожалуйста, возможно ли присваивать переменным значение в битовом представлении?
Т.е. что бы писать не
Код

char a;
a = 2;

а
Код

char a;
a = 00000010;


PM MAIL   Вверх
InvalidProperty
Дата 10.4.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

Репутация: 2
Всего: 9



хм... у меня не получилось ни в MS VS 2005, ни под gcc 4.1.2, хотя нашел такую информацию

http://mandrivausers.org/index.php?showtopic=9326
http://www.gursey.gov.tr/Gilgamesh-WWW/Int.../ref/cnst_c.htm


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
Lazin
Дата 10.4.2009, 12:50 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Код

template <unsigned long N>
struct binary
{
   static unsigned const value = binary<N/10>::value << 1 | N % 10;                    
};

template <>                           
struct binary<0>
{
   static unsigned const value = 0;
};

char a = binary<10>::value;

PM MAIL Skype GTalk   Вверх
UniBomb
Дата 10.4.2009, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Код

char a;
a = 0b00000010; //двоичное представление

char b;
b = 0x01; //шестнадцатеричное представление


кажеться я не туда пишу....

Это сообщение отредактировал(а) UniBomb - 10.4.2009, 12:56
PM MAIL ICQ Skype   Вверх
Lazin
Дата 10.4.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Цитата(UniBomb @  10.4.2009,  12:54 Найти цитируемый пост)
0b00000010

а где такое работает?
PM MAIL Skype GTalk   Вверх
Acer
Дата 10.4.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Lazin, мож свой компилятор юзает smile

0x00000010 - эт аж никак не 2
PM MAIL   Вверх
UniBomb
Дата 10.4.2009, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Lazin, avr-gcc 4.3.0 smile
PM MAIL ICQ Skype   Вверх
UniBomb
Дата 10.4.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Acer, преффикс "0b" насколько я знаю не включон в стандарты (я имею в языках С и С++), поэтому вполне возможно что эта штука не везде работает. Такая конструкция встречается в основном в старых компиляторах и в компиляторах для микропроцессорах. avr-gcc как раз к последнему и относится, ведь в этой области было бы странно, еслибы такая конструкция не поддерживалась бы ;)
PM MAIL ICQ Skype   Вверх
math64
Дата 11.4.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Код

#define BIN0000 0
#define BIN0001 1
#define BIN0010 2
#define BIN0011 3
#define BIN0100 4
#define BIN0101 5
#define BIN0110 6
#define BIN0111 7
#define BIN1000 8
#define BIN1001 9
#define BIN1010 10
#define BIN1011 11
#define BIN1100 12
#define BIN1101 13
#define BIN1110 14
#define BIN1111 15
#define BIN8(a,b) (((BIN##a)<<4) | (BIN##b))
#define BIN16(a,b,c,d) ((BIN8(a,b)<<8) | BIN8(c,d))
#define BIN32(a,b,c,d,e,f,g,h) ((BIN16(a,b,c,d)<<16) | BIN16(e,f,g,h))

PM   Вверх
Riddik
Дата 12.4.2009, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



 smile  как много я ещё не знаю, а уже не один месяц учу... :(
PM MAIL   Вверх
UniBomb
Дата 13.4.2009, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 97



И ещё как вариант:

Код

char c;

c = 1<<1; // c = 2;

c = ((1 << 7)|(1 << 5)|(1 << 3)|(1 << 1)); // c = 170;

PM MAIL ICQ Skype   Вверх
Anikmar
Дата 13.4.2009, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Чего только люди не придумают, чтобы свой код сделать нечитаемым.
PM MAIL ICQ   Вверх
UniBomb
Дата 13.4.2009, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Anikmar, Последний вариант кстате самый читаемый, если "с" - это набор флагов. И если эти флаги как то именованны, то нет ничего более читаемого, чем:

Код

TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);

PM MAIL ICQ Skype   Вверх
andrew_121
Дата 13.4.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(Lazin @  10.4.2009,  13:23 Найти цитируемый пост)
а где такое работает? 

В Ассемблере точно работает.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
TheDestroyer
Дата 13.4.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Спасибо, да, похоже, прямого задания в бинарном виде числа в таких средах как Borland C++ и VC нет.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.