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

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

Войти
Регистрация
Восстановить пароль
 
1programmer
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 24
#1

побитовые операторы _ - C++

15.09.2013, 21:09. Просмотров 395. Ответов 5
Метки нет (Все метки)

не могу разобраться в этой теме_ Вопрос по ходу дела, программа принимает число в диапазоне от 0 и до 255, после чего выводит двоичный код числа. В 27 строке, оператор if сравнивает переменные u и t которые преобразовываются в двоичный коде ?
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
#include <iostream> 
using namespace std; 
 
void show_binary(unsigned int u); 
 
int main() 
{ 
  unsigned u; 
 
  cout << "Введите число между 0 и 255: "; 
  cin >> u; 
 
  cout << "Вот двоичный код числа: "; 
  show_binary(u); 
 
  cout << "вот обратный код числа: "; 
  show_binary(~u); 
 
  return 0; 
} 
 
void show_binary(unsigned int u) 
{ 
  int t; 
 
  for(t=128; t>0; t = t/2) 
    if(u & t) cout << "1 "; 
    else cout << "0 "; 
 
  cout << "\n"; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 21:09     побитовые операторы _
Посмотрите здесь:

Побитовые операторы. Объяснить код - C++
Ребята помогите плиз!!! Есть задача: Напишите функцию setbits(x,p,n,y) так, чтобы она возвращала аргумент x, в котором n битов, начиная с...

Побитовые операции - C++
Помогите пожалуйста, никак не могу справиться с этой задачкой. Выделить из числа x поле шириной n битов, начиная с позиции p, и...

Побитовые сдвиги - C++
#include&lt;iostream&gt; int main() { int t=1; while(255&amp;t){ t=t&lt;&lt;t; std::cout&lt;&lt;t&lt;&lt;'\n';} ...

Побитовые сдвиги - C++
Был на собеседовании, была задачка, вроде такая: Есть функция, которая принимает char a (1 байт) Нужно определить количество битов,...

Побитовые операции в С++ - C++
Здраствуйте. Нужно написать программу которая будед считывать количество единичек (1) в побитовом представлении числа. Пример input: 15 ...

Побитовые операции - C++
Пожалуйста, объясните как работают побитовые операторы &amp; и |. Например идет: i=03; j=01; k=i &amp; j; // k=1 k=i | j; // k=3 А почему...

Побитовые операции - C++
Задача: битовый образ 8*8 задается при помощи 8 байт, каждый байт состоит, соответственно, из 8 бит, бит={0,1}; при помощи побитовых...

Побитовые операции - C++
Задание: Дано целое неотрицательное число. Определить количество составляющих его шестнадцатеричных цифр, содержащих в двоичном...

Побитовые операции - C++
От друга услышал идею о побитовой сортировки имен (например). К примеру, если у нас набор структурных переменных с анкетами работников, и...

Побитовые операции на с++ (<< и >>) - C++
Подскажите пожалуйста, такая задача - побитовый сдвиг на заданное количество символов сдвигает только цифры, как сделать чтобы он то же...

Побитовые функции - C++
Написать функцию которая побитово сравнивает два числа и обчисляет общее количество положений на которых расположены одинаковые значения...

Побитовые операции - C++
Здравствуйте уважаемые читатели форума! СОвсем не представляю как сделать простейшую програмку на С++. Нужно вычислить номер позиции...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6541 / 5007 / 461
Регистрация: 14.02.2011
Сообщений: 16,653
15.09.2013, 21:17     побитовые операторы _ #2
Цитата Сообщение от 1programmer Посмотреть сообщение
u и t которые преобразовываются в двоичный коде ?
все числа в компьютере лежат в двоичном коде
Цитата Сообщение от 1programmer Посмотреть сообщение
for(t=128; t>0; t = t/2)
t=128 в шестнадцатеричном виде t=0x80 или 1000 0000 установлен 7 бит
t = t/2 это тоже самое что сдвиг влево на один разряд после него будет число 0100 0000
Цитата Сообщение от 1programmer Посмотреть сообщение
if(u & t)
поразрядная операчия И т.е цикл проходит с 7 (самого старшего) бита до нулевого и выделяет бит в числе если 1 пишем 1 если 0 то 0
Цитата Сообщение от 1programmer Посмотреть сообщение
void show_binary(unsigned int u)
здесь нужен в качестве аргумента unsigned char у него 8 бит а у int 32
или меняй параметр или цикл
1programmer
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 24
15.09.2013, 22:03  [ТС]     побитовые операторы _ #3
Цитата Сообщение от ValeryS Посмотреть сообщение
здесь нужен в качестве аргумента unsigned char у него 8 бит а у int 32
или меняй параметр или цикл
unsigned int 16 бит, если я не ошибаюсь _

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
t=128 в шестнадцатеричном виде t=0x80 или 1000 0000 установлен 7 бит
ребята, я конечно извиняюсь за такой наверное глупый вопрос, но все равно не пойму, как вы считаете что там установлен 7 бит? не как не пойму этой всей логики _
monolit
185 / 184 / 22
Регистрация: 24.03.2011
Сообщений: 665
Завершенные тесты: 1
15.09.2013, 22:09     побитовые операторы _ #4
Дискретная математика, чтоб ее... Двоичное представление числа. Вот такие дела. Вот преобразуешь это: 1000 0000 из двоичной системы в десятеричную(по нормальным схемам, понимая, что делаешь), и получишь 128.

Добавлено через 34 секунды
Цитата Сообщение от 1programmer Посмотреть сообщение
unsigned int 16 бит
ошибаешься... Все 32.
ValeryS
Модератор
6541 / 5007 / 461
Регистрация: 14.02.2011
Сообщений: 16,653
15.09.2013, 22:10     побитовые операторы _ #5
Цитата Сообщение от 1programmer Посмотреть сообщение
unsigned int 16 бит, если я не ошибаюсь _
для 16 битных систем типа ДОС
в винде 32 бита
у 64битной системы 64 бита
Цитата Сообщение от 1programmer Посмотреть сообщение
ребята, я конечно извиняюсь за такой наверное глупый вопрос, но все равно не пойму, как вы считаете что там установлен 7 бит? не как не пойму этой всей логики _
я же тебе написал двоичный код числа считай справа 0 бит потом 1 и последний 7
27=128
вообще поучись переводить десятичные в двоичные и обратно, для начала можешь воспользоваться калькулятором виндовым в режиме программист
заучи степени 2 хотя бы до 10
1programmer
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 24
15.09.2013, 23:24  [ТС]     побитовые операторы _ #6
ребята, спасибо, сделал ручной просчет на листике и понял как она считает !
Yandex
Объявления
15.09.2013, 23:24     побитовые операторы _
Ответ Создать тему
Опции темы

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