Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
aimbat
0 / 0 / 3
Регистрация: 07.10.2013
Сообщений: 81
#1

Задача про биты - C++

01.11.2013, 02:02. Просмотров 481. Ответов 3
Метки нет (Все метки)

Написать функцию, которая возвращает число, полученное из числа X,в котором все розряды, расположенные правее центральной позиции, заменены на симметрические относительно центра разряды с левой части числа(крайний правый бит считать нулевым по номеру)
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
46
47
48
49
50
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
 
void print_bits (unsigned int n)
{
     int bit = sizeof(n)*4-1; bit >= 0; bit--)
 {
         if ((n >> bit) & 01)
            putchar ('1');
     
         else
         {
           putchar ('0');
         }
          if (bit % 4 == 0) 
              putchar (' ');
              }
        cout<<endl;
}
unsigned int rightcycle_bits (unsigned int n,int bits) 
{         
    for (int i = 0 ; i < bits ; i++)
         {      
             n>>=1;
            return n;
         }
}    
int main ()
{
   unsigned int num; 
   int n;
   cout<<"Input n" << endl;   
   cin >> num;   
   print_bits (num);
   do
   {
        cout << "Input n" << endl; 
        cin >> n;  
        if (n<=0) 
            cout>>"ERROR">>endl; 
   }
   while (n<=0);
   num=rightcycle_bits (num,n); 
   print_bits (num); 
 
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 02:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Задача про биты (C++):

может кто расскажет про биты?
вопрос

Задача на биты.
Здраствуйте. С++ начал изучать недавно. И возникла проблема с решением задачи...

Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат
нужна помощь в битовых операциях.Ввести целое число A. Инвертировать все биты...

... В четных байтах числа в двоичной системе переместить нулевые биты в старшие биты, а в нечетных байтах – в младшие ...
Доброго времени суток всем, столкнулся с проблемой по С++,требуется написать...

Задача про 2 рюкзака
Дано n предметов a1..an, и дан вес каждого из них. Требуется разделить все...

Задача про слона 0о
Нам задали прикольную задачу. От пункта А до пункта Б 12км. На каждом...

3
vua72
417 / 417 / 166
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
01.11.2013, 02:46 #2
И ?

Добавлено через 16 минут
C++
1
2
3
4
5
6
7
8
9
void print_bits(unsigned int n) {
    for (int bit = sizeof(n) * 8 - 1; bit >= 0; bit--) {
        if ((bit + 1) % 4 == 0 && bit + 1 != sizeof(n) * 8)
            std::cout << " " << ((n >> bit) & 1);
        else
            std::cout << ((n >> bit) & 1);
    }
    std::cout << std::endl;
}
1
aimbat
0 / 0 / 3
Регистрация: 07.10.2013
Сообщений: 81
01.11.2013, 02:47  [ТС] #3
Цитата Сообщение от vua72 Посмотреть сообщение
И ?
В двоичную не переводит(
Пишу: 12345
Выводит: 54321
0
vua72
417 / 417 / 166
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
01.11.2013, 03:49 #4
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
void rc_bits(unsigned int &n) {
    int sz = sizeof(n) * 8 - 1;
    unsigned int k = n;
    unsigned int mask = 1;
    for (int i = sz; i > sz / 2; --i) {
        n = ((k >> (sz - i)) & 1) == ((k >> i) & 1) ? n : n ^ mask;
        mask <<= 1;
    }
    std::cout << "\n";
}
void print_bits(unsigned int n) {
    for (int bit = sizeof(n) * 8 - 1; bit >= 0; bit--) {
        if ((bit + 1) % 4 == 0 && bit + 1 != sizeof(n) * 8)
            std::cout << " " << ((n >> bit) & 1);
        else
            std::cout << ((n >> bit) & 1);
    }
    std::cout << std::endl;
}
 
int main() {
 
    unsigned int n = 0xcaFaFFFF;
    print_bits(n);
    rc_bits(n);
    print_bits(n);
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 03:49
Привет! Вот еще темы с решениями:

Задача про кузнечиков
Даны n последовательных столбиков. Кузнечик находится на первом столбе, умеет...

задача про графы
Написать программу отыскания кратчайших путей между всеми парами вершин...

Задача про водопровод
Город Восточный постоянно страдает от недостатка воды. Для устранения этой...

Задача про зайца
В небольшой посадке живет заяц. Выскочив из норы и бегая по снегу, он оставил...


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

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

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