Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 39

Системы счисления C++

20.11.2019, 22:51. Показов 2498. Ответов 3
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые!
Помогите с заданием, пожалуйста.

-Пользователь задает значение 2 байтов в десятичном формате. Если пользователь
ввел число больше 255, взять его по модулю 256. Если введенное значение
некорректно принять его равным 100.
- Вывести на экран введенные пользователем значения в десятичном и бинарном
виде. В бинарном виде число обязательно должно иметь 8 разрядов. Если в двоичной
форме числа меньше восьми разрядов, то нужно добавить необходимое количество
нулей слева.
- Выделить бит номер 7 в первом байте красным цветом.
- Произвести циклический сдвиг битов влево на 2 в первом байте, при этом бит номер
7 оставить на месте.
- Вывести на экран полученный байт в бинарном и десятичном виде, при этом в
бинарном виде выделить красным неподвижный бит номер 7.
- Сложить полученный и второй байт. Вывести результат в бинарном и десятичном
виде. В бинарном числе разделить байты пробелом, если результат занимает больше
одного байта.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2019, 22:51
Ответы с готовыми решениями:

Программа обучения переводу чисел из десятичной системы счисления в 2 10 и 16 систем счисления
дали задание составить программу нужно чтобы на экран выводилось это: Программа обучение переводу чисел из десятичной систем...

Рекурсия: перевод целого числа из десятичной системы счисления в 9 систему счисления
Написать рекурсивную функцию перевода целого числа из десятичной системы счисления в 9-чную систему счисления.

Простейший алгоритм перевода числа из 10 системы счисления в 16 ричную систему счисления
Помогите написать самый простой алгоритм перевода из 10 системы счисления в 16 ричную систему счисления! Мне нужен именно самый простенький...

3
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
20.11.2019, 23:49
Простите, но могу только подсказать что использовать
std::bitset для работы с битами
std::stringstream для перевода значений в бинарный формат
Выделить один символ будет сложно..
Я лично знаю как это сделать только через winapi, но если будет целевая платформа не windows весь код обломается
1
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 39
21.11.2019, 00:55  [ТС]
Нашел решение похожей задачи, но на языке C#. Помогите пожалуйста перевести данное чудо в C++

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp2
{
    class Program
    {
        static void ColorPrint(string s, int[] ColorIndexes)
        {
            for (int i = 0; i < s.Length; i++)
            {
                if (ColorIndexes.Contains(s.Length - i - 1))
                    Console.ForegroundColor = ConsoleColor.Red;
                else
                    Console.ResetColor();
                Console.Write(s[i]);
            }
            Console.WriteLine();
        }
 
        static void SetBit(ref int a, int n)
        {
            a |= 1 << n;
        }
 
        static void ResetBit(ref int a, int n)
        {
            a &= ~(1 << n);
        }
 
        static bool GetBit(int a, int n)
        {
            return ((a >> n) & 1) == 1;
        }
 
        static void SetRsetBit(ref int a, int n, bool v)
        {
            if (v)
                SetBit(ref a, n);
            else
                ResetBit(ref a, n);
        }
 
        static string ToOctet(int a)
        {
            return Convert.ToString(a, 2).PadLeft(8, '0');
        }
 
        static void Main(string[] args)
        {
            Console.Write("Enter a number between 0 and 255: ");
            int b;
            if (!int.TryParse(Console.ReadLine(), out b))
                b = 100;
            b %= 256;
            string sb = ToOctet(b);
            Console.WriteLine("{0}(10)={1}(2)", b, sb);
            Console.Write("Enter bit #: ");
            int bn = int.Parse(Console.ReadLine()) % 8;
            ColorPrint(sb, new int[] { 7, bn });
            int Shifted = b >> 2;
            SetRsetBit(ref Shifted, 7, GetBit(b, 7));
            SetRsetBit(ref Shifted, bn, GetBit(b, bn));
            Console.Write("{0}=", Shifted);
            ColorPrint(ToOctet(Shifted), new int[] { 7, bn });
            int r = b + Shifted;
            string rs = ToOctet(r);
            if (rs.Length > 8)
                rs = "0000000" + rs.Insert(1, " ");
            Console.WriteLine("{0}(10)={1}(2)", r, rs);
            Console.ReadKey();
        }
    }
}
0
 Аватар для Alikberov
131 / 116 / 25
Регистрация: 03.05.2017
Сообщений: 337
Записей в блоге: 1
21.11.2019, 05:11
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
#include <stdio.h>
 
void SetBit(int &a, int n) {
    a |= 1 << n;
}
void ResetBit(int &a, int n) {
    a &= ~(1 << n);
}
bool GetBit(int a, int n) {
    return !!(a & (1 << n));
}
void SetRsetBit(int &a, int n, bool v) {
    if(v)
        SetBit(a, n);
    else
        ResetBit(a, n);
}
char* ToOctet(int a) {
    static char result[16] = {0};
    for(int i = 0; i < 8; ++ i)
        result[i] = a & (128 >> i) ? '1' : '0';
    return result;
}
 
int main(int argc, char* argv[]) {
    int b = 100;
    int bn = 0;
    printf("Enter a number between 0 and 255: ");
    scanf("%d", &b);
    b %= 256;
    printf("%d(10)=%s(2)\r\n", b, ToOctet(b));
    printf("Enter bit #: ");
    scanf("%d", &bn);
    bn %= 8;
    
    int Shifted = b >> 2;
    SetRsetBit(Shifted, 7, GetBit(b, 7));
    SetRsetBit(Shifted, bn, GetBit(b, bn));
    printf("%d(10)=%s(2)", Shifted, ToOctet(Shifted));
    int r = b + Shifted;
    printf("%d(10)=%s(2)", r, ToOctet(r));
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2019, 05:11
Помогаю со студенческими работами здесь

Перевод натурального числа из десятичной системы счисления в систему счисления по основанию
Здравствуйте. Я хотела бы попросить у вас помощи. Я понимаю, что это не очень красиво, но вдруг кто-нибудь откликнется. Я не очень...

Перевод строки из 2-ной системы счисления в 8-ную систему счисления
помогите пожалуйста как сделать перевод строки из 2 системы счисления на 8 систему счисления через массив ?

Перевод числа из восьмеричной системы счисления в шестнадцатеричную систему счисления
Вот пример числа: 754 = 1EC 1000 = 200

Перевод из любой системы счисления в любую другую систему счисления (2-36)
Привет. 1 курс факультета ИВТ, изучаю С++ только один месяц. Из основного прошли строки, массивы, начали разбирать функции. Преподаватель...

Написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления
Помогите написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления. Цифра в самом младшем...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru