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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
#1

Посмотреть символ в битовой схеме - C++

20.06.2011, 20:16. Просмотров 1224. Ответов 12
Метки нет (Все метки)

есть запись например такая:
C++
1
unsigned char bits=1;
как ее можно посмотреть в битовой схеме, т.е. чтобы вывод на экран выглядел так: 10011011 ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 20:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посмотреть символ в битовой схеме (C++):

Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» - C++
День добрый. Имеется условие лабы. Написать программу, в которой с клавиатуры вводится до 10 символьных строк. Вывести строки, в...

Поиск битовой последовательности (с заморочками) - C++
Необходимо осуществить поиск последовательности БИТОВ (!) в бинарном файле! Но возникла такая проблема: последовательность не выравнена...

представление множества в виде битовой шкалы - C++
Реализовать АТД множество, использующий представление в виде битовой шкалы. АТД должен реализовать операции проверки принадлежности...

Подсчет crc16 для битовой последовательности - C++
Здравствуйте! Мне нужно сделать подсчет crc суммы для блока двоичных данных с заранее известной длиной. Я нашел на вики данную функцию...

Телефонная компания. Кодировка информации в 64 битовой переменной - C++
Доброго времени суток ув. Форумчане! Будьте добры, помогите плз! Дано задание : Телекоммуникационная фирма хранит данные об одном...

Циклический сдвиг битов по столбцу в битовой матрице - C++
Нужна програмка которая создаёт матрицу битов 8х8 и дает возможность делать в ней цикличные сдвики вверх(или вниз) то есть биты с...

12
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.06.2011, 20:32 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void  _bin8(char* buf, unsigned char _c) {
    char* p = buf + 7;
    for(int i = 0; i < 8; i++)  *((buf) + i) = '0';
    for(; _c ; _c >>= 1) {
        *p = (_c & 0x1) ? '1' : '0';
        --p;
    }
    buf[8] = '\0';
}
 
 
 void  main(void){
      unsigned char bits=0xAF;
      char buf[8];
      _bin8(buf, bits);
       cout << buf << endl;
}
0
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
20.06.2011, 20:34 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main()
{
    unsigned char bits=4, temp, i;
    for (i=0; i<8; i++)
    {
        temp = (bits >> 7-i) & 1;
        printf("%u", temp);
    }
}
Добавлено через 21 секунду
Не успел.
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
20.06.2011, 20:37 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Перевод произвольного десятичного числа типа char в двоичную систему счисления
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.06.2011, 20:38 #5
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <bitset>
 
int main()
{
   unsigned char p = 255;
   std::bitset<8> bit(p);
   std::cout << bit << '\n';
}
2
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.06.2011, 20:40 #6
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <bitset>
int main(){
    unsigned char bits = 3;
    std::bitset<10> bs(bits);
    for (size_t i = 0; i < bs.size() ; ++i)
        std::cout << bs[i]; 
    return 0;
}
0
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
20.06.2011, 21:01  [ТС] #7
а в реальных программах побитовыми операторами вообще пользуются? если да, то где обычно?
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.06.2011, 21:05 #8
В флагах.
Например
C++
1
2
3
fstream filestr;
 
  filestr.open ("test.txt", fstream::in | fstream::out | fstream::app);
Ну и еще много где по мелочи
0
fasked
Эксперт С++
4948 / 2528 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
20.06.2011, 21:25 #9
Цитата Сообщение от Olejeg85 Посмотреть сообщение
а в реальных программах побитовыми операторами вообще пользуются? если да, то где обычно?
Больше в системном программировании, чем в прикладном.
0
silent_1991
Эксперт С++
4986 / 3043 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.06.2011, 17:13 #10
Olejeg85, скажем, двойку в степень удобнее всего побитово возвести, если за границы типа результат не выйдет. Или число на чётность тоже проверяется классно.
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
21.06.2011, 20:40 #11
Лучше использовать библиотечную функцию, быстрее.
C++
1
2
3
4
unsigned int bit = 0xf1;
char s[9];
itoa(bit, s, 2);
puts(s);
Цитата Сообщение от fasked Посмотреть сообщение
Больше в системном программировании, чем в прикладном
В шифровании, сжатие информации, в графике тернарных растровых операций.....
0
fasked
Эксперт С++
4948 / 2528 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
21.06.2011, 21:56 #12
Цитата Сообщение от xAtom Посмотреть сообщение
Лучше использовать библиотечную функцию, быстрее.
Этой функции нет в стандарте. Конечно, она предоставляется абсолютным большинством компиляторов. Но переносимость не гарантируется.
0
ValeryLaptev
Эксперт С++
1042 / 821 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
21.06.2011, 22:35 #13
Цитата Сообщение от Евгений М. Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main()
{
    unsigned char bits=4, temp, i;
    for (i=0; i<8; i++)
    {
        temp = (bits >> 7-i) & 1;
        printf("%u", temp);
    }
}
Добавлено через 21 секунду
Не успел.
Зато у тебя ГОРАЗДО читабельнее!
1
21.06.2011, 22:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2011, 22:35
Привет! Вот еще темы с ответами:

Ввести число в битовой форме: 8 бит, старшие биты слева, младшие – справа - C++
Код работает, но что-то неправильно считает. Не могу понять почему. Подскажите плз. /*Дано число типа unsigned char, то есть от 0 до...

Сформировать список символов, оканчивающийся точкой. Заменить в списке символ “A” на символ “0” - C++
1. Сформировать список из целых чисел. После каждого отрицательного элемента вставить число 3. 2. Сформировать список символов,...

Это эта задача? (Поменять подряд заданный символ на другой символ.) - C++
Задача (язык С + +). Поменять в введенном с клавиатуры строке символов подряд заданный символ на другой заданный символ. #include...

Обменять символ 'a' на символ 'т' в заданной строке. Оформить в виде функции - C++
Обменять символ 'a' на символ 'т' в заданной строке. Оформить в виде функции


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

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

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