Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсия: удаление из строки всех лишние пробелов Разработать рекурсивную функцию, удаляющую из строки все лишние пробелы. Пробелы считаются лишними, если их подряд идет более двух, если они стоят в конце строки после последней точки, если стоят после открывающегося парного знака препинания.(если можно . то на си , пожалуйста) https://www.cyberforum.ru/ cpp-beginners/ thread709314.html C++ Прошу!
Уважаемые люди помогите с задачами по с++ вопрос жизни и смерти точнее отчисление из института вообщем сами задачи Семинар 2 и 3 вариант 14 и еще на фото будет прошу как можно скорее от этого зависит моя жизнь и жизнь моего рода За ранее гиганское спасибо вот
C++ Подсчет символов в строке, как работает? ( С++ ) https://www.cyberforum.ru/ cpp-beginners/ thread709303.html
Доброго времени суток! Помогите начинающему: Есть код который читает символы - #include <iostream> int main () { int spase=0; int total=0;
C++ как создать проект в vs 2010 какой проект нужно создать для написания вот такой программы? #include <iostream.h> #include <conio.h> int main(void) { int a,b,max; cout << "a="; //приглашение ввести значение a cin >> a; //ввод значения переменной а cout << "b="; //приглашение ввести значение b cin >> b; //ввод значения переменной b https://www.cyberforum.ru/ cpp-beginners/ thread709292.html
C++ При работе с 24-разрядными изображениями происходят искажения
пытаюсь заставить этот код работать, для начала просто открываю бмп файл, и сохраняю данные в другой бмп файл, так вот с 16,256-цветными работает, а с 24-разрядными происходят какие-то странные искажения. Подскажите, в чем может быть проблема? Исходные 24-битные изображения: То, что на выходе, собственно: #include "stdafx.h"
C++ Типы данных https://www.cyberforum.ru/ cpp-beginners/ thread709281.html
3. Разработать битовое поле, описывающее состояния элементов прибора. Ввести с консоли число в 16-ричной системе счисления, преобразовать его в битовое поле за счёт использования объединения. Вывести на консоль состояния элементов прибора, соответствующие состоянию битов во введённом числе. (MP3 проигрыватель-диктофон. Элементы: воспроизведение вкл/выкл, пауза вкл/выкл, запись вкл/выкл.)
C++ Копирование директории Как реализовать полное копирование директории на freeBSD (Не используя библиотек Microsoft)? Какой наиболее оптимальный алгоритм для этого (при котором будут копироваться файлы как можно быстрее)? https://www.cyberforum.ru/ cpp-beginners/ thread709276.html Система уравнений C++
Помогите розвязать систему уравнений
C++ Типы данных, определяемые пользователем 3. Разработать битовое поле, описывающее состояния элементов прибора. Ввести с консоли число в 16-ричной системе счисления, преобразовать его в битовое поле за счёт использования объединения. Вывести на консоль состояния элементов прибора, соответствующие состоянию битов во введённом числе. (MP3 проигрыватель-диктофон. Элементы: воспроизведение вкл/выкл, пауза вкл/выкл, запись вкл/выкл.) По... https://www.cyberforum.ru/ cpp-beginners/ thread709258.html C++ Диспетчер автоматического резервирования информации Доброго времени суток! Прошу помощи в разработке диспетчера автоматического резервирования информации с серверов ftp и почты. Помогите с чего начать какой либо информацией, исходниками, учебниками. Заранее спасибо. https://www.cyberforum.ru/ cpp-beginners/ thread709256.html
C++ Объединить массив байт в целое число в с++
Привет! Нужно сдвинуть биты в каждом байте циклически вправо на случайное число N из диапазона 0..7 Разбить целое число на байты не составило проблем, также как и произвести циклический сдвиг. Вопрос: как объединить байты со сдвигом в новое число? может кто предоставить рабочий пример?. Вопрос 2 Нужно произвести циклический сдвига старшей тетрады на N битов вправо, а младшей тетрады на...
C++ определения меры случайности генераторов случайных чисел Ребят, доброго времени суток! У меня есть задание по курсовой, и там нужно написать программу. Уже 3 дня сижу ковыряю, а результата 0. Вообще ничего в голову не идет. Если Вам не трудно, можете подсказать с кодом, буду признателен. Задание: "Реализация на языке С++ статистических тестов определения меры случайности генераторов случайных чисел The Runs Test (NIST), Approximate Entropy Test... https://www.cyberforum.ru/ cpp-beginners/ thread709252.html
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
26.11.2012, 02:53 0

Битовые операции - C++ - Ответ 3755370

26.11.2012, 02:53. Показов 1081. Ответов 3
Метки (Все метки)

Ответ

andrrr, если расписать на бумаге операцию установки битов, то видно, что периодичность повтора устанавливаемых значений равна 5. Каждые 5 байт нужно выполнить соответствующее побитовое ИЛИ. На Си пожалуйста, а вот на с++ с выводом однобайтовых хексов что-то не получается.
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
unsigned char *setbit (unsigned char *s)
{
#define SIZE_MASK_ARRAY (5)
    unsigned char mask[] = { 0x08, 0x42, 0x10, 0x84, 0x21 };
    unsigned char *ptr = s;
    size_t i = 0;
 
    while(*ptr) {
        *ptr |= mask[i % SIZE_MASK_ARRAY];
        i++;
        ptr++;
    }
#undef SIZE_MASK_ARRAY
    return s;
}
 
int main()
{
    unsigned char string[] = "this is a good string for example";
    unsigned char *ptr = string;
    size_t i, len = strlen(string);
 
    fputs("this is a source bytes of string\n", stdout);
    while( *ptr )
        printf("%X", *ptr++);
 
    fputs("\nthis is a modified bytes of string\n", stdout);
    ptr = setbit(string);
 
    while( *ptr )
        printf("%X", *ptr++);
 
    exit(EXIT_SUCCESS);
}
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
43
44
45
#include <iostream>
#include <string>
#include <iomanip>
 
void setbit (std::string &s, unsigned int len)
{
#define SIZE_MASK_ARRAY (5)
    std::string mask =
    {
        (char)0x08,
        (char)0x42,
        (char)0x10,
        (char)0x84,
        (char)0x21
    };
    unsigned int i = 0;
 
    while(i < len)
    {
        s[ i ] |= mask[i % SIZE_MASK_ARRAY];
        i++;
    }
#undef SIZE_MASK_ARRAY
}
 
int main()
{
    std::string str ("this is a good string for example");
    unsigned int i = 0, len = str.size();
 
    std::cout << "this is a source bytes of string\n" << '\n';
    while( i < len )
        std::cout << std::hex << (unsigned int)str[ i++ ];
    std::cout << '\n';
 
    std::cout << "this is a modified bytes of string\n" << '\n';
    i = 0;
    setbit(str, len);
 
    while( i < len )
        std::cout << std::hex << (unsigned int)str[ i++ ];
    std::cout << '\n';
 
    return 0;
}


Вернуться к обсуждению:
Битовые операции C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2012, 02:53
Готовые ответы и решения:

Битовые операции, битовые поля.
Здравствуйте! Еслть 4 диапазона чисел: 0-100, 0-100, 0-6000, 0-3. Сделать в виде битовых операций....

Битовые операции и операции смещения языка С
Доброго времени суток господа,помогите пожалуйста.Есть 2 кода к задаче,первый работает...

Битовые операции
Здравствуйте! нужно решить задачу: в целом числе заменить младший бит старшего байта на 1 ...

Битовые операции
Напишите программу в которой обьявите короткое целое со значением 12345 и определите путем ...

3
26.11.2012, 02:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2012, 02:53
Помогаю со студенческими работами здесь

Битовые операции
Не могу разобраться с 4 заданием Реализовал пятое но не в одну строчку и без понятия как ...

Битовые операции
Здравствуйте, необходимо разбить двухбайтное целое число на тетрады и поменять местами 2 и 3...

Битовые операции.
подскажите пожалуйста как сделать обратное преобразование после выполнения такого кода st=1;...

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

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru