Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/30: Рейтинг темы: голосов - 30, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 16

Работа с битами

01.06.2011, 09:02. Показов 6994. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
три раза писал но все равно не получается(((
1-)Ввести последовательность из 8 символов. Сравнить 5-й и 6-й биты каждого символа. Если они не равны, то сделать их равными младшему биту, иначе - старшему.
Вывести исходную последовательность, ее восьмеричные коды; преобразованную последовательность и ее восьмеричные коды.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2011, 09:02
Ответы с готовыми решениями:

Работа с битами И Работа с символьными данными
1. Ввести 8 символов. В символе с наибольшим кодом заменить 5-й бит единицей, а в символе с наименьшим кодом 6-й бит - нулем. Вывести...

Работа с битами
Стоит задача: вывести все двоичные коды чисел от 0 и до 2n-1. Сделать напролом могу(переводить в цикле каждое число в двоичную с-му и...

Работа с битами
Не могу понять, почему не правильно работает программа. Программа зашифровывает строку, выводит, потом расшифровывает и выводит. ...

28
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
04.06.2011, 21:31
Студворк — интернет-сервис помощи студентам
а если проверять на соответствие маске вот так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
    // 1110 xxxx
    // 128 64 32 16 8 4 2 1
    int a = 128 + 64 + 32 + 4;
    int mask = 0xE; // 1110
 
    if (a>>4 == mask) std::cout << "1";
    else std::cout << "0";
 
    return 0;
}
0
 Аватар для Union
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
04.06.2011, 22:25
Способ grizlik78 вроде как должен работать быстрее?
0
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
05.06.2011, 08:51
думаете битовый сдвиг намного медленнее побитового "И"?
0
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 16
05.06.2011, 18:32  [ТС]
Цитата Сообщение от mexmet20 Посмотреть сообщение
извините но я ничего не понял по боолще не могли бы писат.
брат вместе точек че надо писат_*?()_

Добавлено через 2 минуты
Цитата Сообщение от denix Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#define MASK 0x60
#define BIT_5 0x20
#define BIT_6 0x40
 
....
 
      if (((mas[i] & BIT_5) && ((mas[i] & BIT_6))
        bit = mass[i] & 0x01;
      else
        bit = mass[i] & 0x80;
 
      if (bit)
          mas[i] |= MASK;
      else
          mas[i] &= ~MASK;
 
...
Добавлено через 13 минут
брат вместе точек че надо писать подробно сможещь писать?
0
 Аватар для denix
65 / 65 / 5
Регистрация: 11.01.2009
Сообщений: 130
05.06.2011, 22:52
Цитата Сообщение от no0ker Посмотреть сообщение
думаете битовый сдвиг намного медленнее побитового "И"?
одинаково
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
05.06.2011, 23:32
Цитата Сообщение от denix Посмотреть сообщение
одинаково
ну это не сказать, скорее зависит от процессора, наверно
0
 Аватар для denix
65 / 65 / 5
Регистрация: 11.01.2009
Сообщений: 130
06.06.2011, 08:14
Цитата Сообщение от iama Посмотреть сообщение
ну это не сказать, скорее зависит от процессора, наверно
без ну
0
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 16
06.06.2011, 12:36  [ТС]
++++++++++++++++
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
06.06.2011, 21:58
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
 
char table[6] = { 4, 5, 5, 4, 0, 0 };
 
char transform_char(char c)
{
    table[4] = 0x80 & c;
    table[5] = 0x01 & c;
    if (table[table[(c & 0x60) >> 5]])
        return c | 0x60;
    return c & (~0x60);
}
 
void transform_all(char array[8])
{
    int i;
    for (i = 0; i < 8; ++i)
        array[i] = transform_char(array[i]);
}
 
void print_array(char array[8])
{
    int i;
    for (i = 0; i < 8; ++i)
    {
        char c = array[i];
        printf("%c - %04o\n", c, c);
    }
}
 
int main()
{
    char array[8];
    printf("Input 8 characters: ");
    scanf("%8c", array);
    printf("before:\n");
    print_array(array);
    transform_all(array);
    printf("after:\n");
    print_array(array);
    return 0;
}
Биты нумеруются с нуля. Если надо с единицы, то надо будет константы поменять.
Скучный код писать не хочу
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2011, 21:58

работа с битами
доброй ночи, форумчане, необходима ваша помощь) как и всем тут... вот изучаю с++ и добрался до работы с битами, учу решением задач. на...

Работа с битами.
помогите!! как писать эту на программе с++ Ввести последовательность из 8 символов. Сравнить 5-й и 6-й биты каждого символа. Если они...

Работа с битами.
Здрасте. Дана задача: Определить на сколько в числе А больше значущих битов, что равны единице, чем битов, что равны нулю. Помогите...

Работа с битами
В общем вот локальная проблема: есть int, который выступает в роли сетки нулей и единиц, два примера, разницу между которыми не могу...

Работа с битами
Я уже задолбался... :wall: Может мне кто нибудь подскажет как из 00111010 (58) получить 00001010 (10) хотя бы каким методом... код...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru