Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
#1

Битовый уровень - C++

30.11.2009, 15:58. Просмотров 809. Ответов 2
Метки нет (Все метки)

Сейчас в университете гоняют по задача для выполнения битовых операции и структурных операторов на битовом уровне, но я не сильно понимаю. Вот что я имею виду задача для примера:
Показать на битовом уровне, определить является число число 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 я понимаю, как сдвигаются биты в лево и право, тоже понимаю ну и как они инвертируются соответственно. Можете подсказать что следует почитать на эту тему, что можете посоветовать по решать на эту же тему чтобы немного понять, а то в пятницу уже модульная контрольная и нужно разобраться. Заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2009, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Битовый уровень (C++):

Ежедекадно в течение июня измерялся уровень воды в десяти речках. Определить подекадно: в каких речках наблюдался самый высокий уровень - C++
Ежедекадно в течение июня измерялся уровень воды в десяти речках. Определить подекадно: в каких речках наблюдался самый высокий уровень (и...

Битовый сдвиг в if() - C++
Обясните как работает такой код:void swap(int &amp;a, int &amp;b) { int temp = a; a = b; b = temp; } void...

Битовый сдвиг - C++
Вот в чем вопрос: int x = 2; int y; y = (x &gt;&gt; 32); cout &lt;&lt; x &lt;&lt; &quot; &quot; &lt;&lt; y; Должен быть выход 2 0, а на экран...

Строка -> Битовый вектор - C++
Вновь обращаюсь за помощью. Реализовал на C++ алгоритм блочного шифрования (SDES), использующий на входе битовые векторы длиной 8 бит. Так...

Битовый сдвиг массива - C++
Помогите разобраться с сдвигом влево (выравниванием до начала байта) данных. Задача заключается в том что есть некий массив, в котором...

Преобразование int в float (битовый перенос) - C++
Ребят, нигде в интернете не нашел ответа Битовые сдвиги с float не работают Нужно побитово перенести биты INT в float Так что бы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
30.11.2009, 16:57 #2
Цитата Сообщение от ArniLand Посмотреть сообщение
Показать на битовом уровне, определить является число число N кратное 16
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define ARR_SIZ 20
 
/* определение чисел, кратных 16 */
 
int main(void){
    int arr[ARR_SIZ];
    size_t i;
    
    srand(time(NULL));
    
    for ( i = 0; i < ARR_SIZ; i++ )
        arr[i] = rand() % 320 + 1;
    
    for ( i = 0; i < ARR_SIZ; i++ )
        printf("%03d %s\n", arr[i], ( arr[i] & ~(~0 << 4) ) ? " не кратно 16" : " кратно 16");
    
    return 0;
}
0
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
30.11.2009, 18:20  [ТС] #3
а что можно почитать по битовому уровню, чтобы понять как писать исходный код задачки с битами, а то не всегда понятно как они отображаются в коде?

Цитата Сообщение от easybudda Посмотреть сообщение
int arr[ARR_SIZ];
это насколько я понял массив? Мы еще не учили массивы, поэтому нам преподаватель скажет вы не знаете еще такого слова и нельзя использовать его. Также нельзя вывод на экран использовать потому что не учили его
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2009, 18:20
Привет! Вот еще темы с ответами:

Нужна подсказка про битовый ИЛИ - C++
Подскажите пожалуйста, что значит строчка &quot;min|=min;&quot;, конкретно интересует оператор |=? Заранее благодарю за ответ!

Битовый сдвиг вправо для дробных чисел - C++
(Как мне уже известно) битовый сдвиг вправо на одну &quot;ячейку&quot; аналогичен делению на 2. Например 1/2^3 или 1&gt;&gt;3. Число получается не целым,...

Битовый массив (значения принимаются битами, а адресация по номеру бита) - C++
Реализовать только на языке C. Битовый массив (значения принимаются битами, а адресация по номеру бита.)

8-битовый тип signed char может представлять значения от -128 до 127 - C++
8-битовый тип signed char может представлять значения от -128 до 127 Кто может растолковать как это понимать, от 128 до 127 -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru