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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ рекурсивная функция http://www.cyberforum.ru/cpp-beginners/thread709314.html
Разработать рекурсивную функцию, удаляющую из строки все лишние пробелы. Пробелы считаются лишними, если их подряд идет более двух, если они стоят в конце строки после последней точки, если стоят после открывающегося парного знака препинания.(если можно . то на си , пожалуйста)
C++ Прошу! Уважаемые люди помогите с задачами по с++ вопрос жизни и смерти точнее отчисление из института вообщем сами задачи Семинар 2 и 3 вариант 14 и еще на фото будет прошу как можно скорее от этого зависит моя жизнь и жизнь моего рода За ранее гиганское спасибо вот http://www.cyberforum.ru/cpp-beginners/thread709306.html
Подсчет символов в строке, как работает? ( С++ ) C++
Доброго времени суток! Помогите начинающему: Есть код который читает символы - #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
C++ При работе с 24-разрядными изображениями происходят искажения http://www.cyberforum.ru/cpp-beginners/thread709286.html
пытаюсь заставить этот код работать, для начала просто открываю бмп файл, и сохраняю данные в другой бмп файл, так вот с 16,256-цветными работает, а с 24-разрядными происходят какие-то странные искажения. Подскажите, в чем может быть проблема? Исходные 24-битные изображения: То, что на выходе, собственно: #include "stdafx.h"
C++ Типы данных 3. Разработать битовое поле, описывающее состояния элементов прибора. Ввести с консоли число в 16-ричной системе счисления, преобразовать его в битовое поле за счёт использования объединения. Вывести на консоль состояния элементов прибора, соответствующие состоянию битов во введённом числе. (MP3 проигрыватель-диктофон. Элементы: воспроизведение вкл/выкл, пауза вкл/выкл, запись вкл/выкл.) подробнее

Показать сообщение отдельно
activnaya
 Аватар для activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
26.11.2012, 02:53     Битовые операции
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;
}
 
Текущее время: 12:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru