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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> битовый уровень в программах 
:(
    Опции темы
ArniLand
Дата 30.11.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Сейчас в университете гоняют по задача для выполнения битовых операции и структурных операторов на битовом уровне, но я не сильно понимаю. Вот что я имею виду задача для примера:
Показать на битовом уровне, определить является число число N кратное 16, в обычном случае понятно что такое кратное число
Решение: iA тут какое нибудь число
void main()
Код
{
int iA,iB,i,x=0,F;
for(i=0;i<4;i++)
  {
       iB=iA&(1<<i);
       if(iB=0) x++;
  }
if(x=4) F=1;
else F=0;
}

Решение не я составил, мне показали пример как решить задачу. Дают подобные задачи не обязательно на кратность, с битами в общем. Как работают операции and, or, xor  я понимаю, как сдвигаются биты в лево и право, тоже понимаю ну и как они инвертируются соответственно. Можете подсказать что следует почитать на эту тему, что можете посоветовать по решать на эту же тему чтобы немного понять, а то в пятницу уже модульная контрольная и нужно разобраться. Заранее спасибо
PM MAIL   Вверх
mes
Дата 30.11.2009, 16:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(ArniLand @  30.11.2009,  15:01 Найти цитируемый пост)
мне показали пример как решить задачу.

так же как в 10тичной системе число делится на 10000, если последние 4ре цифры нули
также и в 2ичной: делится на 010000b (16)  если последние 4 бита нулевые :
Код

bool fn(unsigned val)
{
// 0хf = 01111b
    return (val & 0xf) == 0;
}



--------------------
PM MAIL WWW   Вверх
ArniLand
Дата 30.11.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



а что можно почитать по битовому уровню, чтобы понять как писать исходный код задачки с битами, а то не всегда понятно как они отображаются в коде?
PM MAIL   Вверх
bsa
Дата 30.11.2009, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



ArniLand, дискретную математику и немного и машинных системах счисления - перевод между 16-тиричной, двоичной, восьмиричной и десятичной.
PM   Вверх
Albor
Дата 2.12.2009, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(ArniLand @  30.11.2009,  18:20 Найти цитируемый пост)
чтобы понять как писать исходный код задачки с битами, а то не всегда понятно как они отображаются в коде

В исходнике ты не можешь представить число в двоичном коде, во всяком случае, стандартных способов нет. Если работаешь с битами, то числа удобнее представлять либо в 16-ричной, либо в 8-ричной ссч, в зависимости от задачи, как они выглядят в двоичной ссч - составь табличку на бумаге и подсматривай туда или пользуйся 8-4-2-1 шаблоном, например число 12(10) = С(16) = 8+4+0+0 = 1100(2), то есть 1 в тех разрядах, которые учавствуют в сложении.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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