Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 183
1

Дано целое число. Проинвертировать младшие четыре бита этого числа

07.04.2019, 11:21. Показов 1725. Ответов 12
Метки нет (Все метки)

Помогите пожалуйста дописать программу. Кусочек у меня есть в 2 варианта. Первый вариант я ввожу число, и оно переводится в двоичное. А второй вариант также ввожу число, но я добавила строчки и выводится число только десятичное(как я поняла инвертируемое от исходного)

1 вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <bitset>
using namespace std;
int main()
{ int n;
cout << "Enter a number: "; cin >> n;
bitset<8> bitset = n ;
cout << "Binary : " << bitset.to_string<char, char_traits<char>, allocator<char> >() << endl;
//int x=~n;
//cout << "x : " << x << endl;
system("pause");
return 0;
}
2 вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <bitset>
using namespace std;
int main()
{ unsigned int n;
cout << "Enter a number: "; cin >> n;
bitset<8> bitset = n ;
cout << "Binary : " << bitset.to_string<char, char_traits<char>, allocator<char> >() << endl;
cout << (n ^ (((1 << 5) - 1)<<3)) << endl;
system("pause");
return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2019, 11:21
Ответы с готовыми решениями:

Дано целое число. Если оно нечетное,о вычислить сумму синуса и косинуса этого числа,в противоположном случае вычислить модуль этого числа
Дано целое число. Если оно нечетное,о вычислить сумму синуса и косинуса этого числа,в...

дано целое положительное число.найти число,равное сумме кубов этого числа
дано целое положительное число.найти число,равное сумме кубов цифр исходного числа.//не могу...

Дано целое число от 0 до 8. Вычислить 2 в степени этого числа
Дано целое число от 0 до 8. Вычислить 2 в степени этого числа. Полученное значение вывести на экран.

Дано целое число. Уменьшить каждую цифру этого числа на 1
в визуальной среде делфи на до решить: Дано целое число. Уменьшить каждую цифру этого числа на 1....

12
Продавец времени
5028 / 2783 / 640
Регистрация: 12.03.2015
Сообщений: 13,524
07.04.2019, 11:33 2
Хватит на сегодня БДСМ.
C++
1
x = (x & ~0xF) | (~x & 0xF);
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 183
07.04.2019, 11:39  [ТС] 3
Только выводится что-то не понятное
0
Миниатюры
Дано целое число. Проинвертировать младшие четыре бита этого числа  
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 183
07.04.2019, 11:45  [ТС] 4
Вот так я сделала, он инвертирует младшие 4 бита. Только инвертируемое число выводит в десятичном, а как вывести в двоичном?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <bitset>
using namespace std;
int main()
{ unsigned int n;
cout << "Enter a number: "; cin >> n;
bitset<8> bitset = n ;
cout << "Binary : " << bitset.to_string<char, char_traits<char>, allocator<char> >() << endl;
cout << ( n ^ (((1 << 4) - 1)<<0)) << endl;
system("pause");
return 0;
}
0
Продавец времени
5028 / 2783 / 640
Регистрация: 12.03.2015
Сообщений: 13,524
07.04.2019, 11:50 5
Цитата Сообщение от Polina B Посмотреть сообщение
Вот так я сделала, он инвертирует младшие 4 бита.
Я не понял: чем мой вариант тебя не устраивает?
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 183
07.04.2019, 11:54  [ТС] 6
Так там число в x в не понятном виде выводится.
0
Продавец времени
5028 / 2783 / 640
Регистрация: 12.03.2015
Сообщений: 13,524
07.04.2019, 12:00 7
Цитата Сообщение от Polina B Посмотреть сообщение
Так там число в x в не понятном виде выводится.
Неправда. В моём варианте вообще нет вывода (и ввода тоже), только вычисление.
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 183
07.04.2019, 12:02  [ТС] 8
Ну а вы не подскажите по моему коду, как сделать чтобы результат инвертируемого числа выводился в двоичном виде, а не в десятичном?
0
4056 / 2302 / 961
Регистрация: 07.02.2019
Сообщений: 6,017
07.04.2019, 12:05 9
Лучший ответ Сообщение было отмечено Polina B как решение

Решение

Polina B,
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <bitset>
 
int main()
{
    int num;
    std::cin >> num;
    std::cout << std::bitset<8 * sizeof(int)>(num) << std::endl
        << std::bitset<8 * sizeof(int)>(num ^ 0xf) << std::endl;
}
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 183
07.04.2019, 12:09  [ТС] 10
zayats80888 , спасибо большое!
0
"C with Classes"
1640 / 1262 / 476
Регистрация: 16.08.2014
Сообщений: 5,271
Записей в блоге: 1
07.04.2019, 12:18 11
Polina B, еще можно вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <bitset>
#include <limits>
 
using Converter = std::bitset<std::numeric_limits<unsigned long>::digits>;
 
int main()
{
    int number {};
 
    std::cout << "Enter number: ";
    std::cin >> number;
 
    std::cout << Converter(number);
    std::cout << std::endl;
    std::cout << Converter(number ^ 0xF);
 
    return 0;
}
0
Продавец времени
5028 / 2783 / 640
Регистрация: 12.03.2015
Сообщений: 13,524
07.04.2019, 12:19 12
Посмотри: так должно быть?

Дано целое число. Проинвертировать младшие четыре бита этого числа
0
Продавец времени
5028 / 2783 / 640
Регистрация: 12.03.2015
Сообщений: 13,524
07.04.2019, 12:33 13
Сорри, не смог вовремя остановиться.
Универсальный макрос:
C++
1
2
// инверсия n младших бит числа x
#define INVERT(x, n) ((x & ~((1 << n) - 1)) | (~x & ((1 << n) - 1)))
Дано целое число. Проинвертировать младшие четыре бита этого числа
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2019, 12:33

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Дано целое число. Уменьшить каждую цифру этого числа на 1.
Помогите пожалуйста. Дано целое число. Уменьшить каждую цифру этого числа на 1.

Дано произвольное целое число. Вывести цифры этого числа
напишите, пожалуйста, программу: Дано произвольное целое число. Вывести цифры этого числа, найти...

Дано целое число n. Получить все простые делители этого числа
Почему простые делители выдает не правильно? ch-число del-делитель dd-делитель делителя ...

Дано трехзначное целое число N. Найти все цифры этого числа
Дано трехзначное целое число N. Найти все цифры этого числа. (Помогите)


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

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

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