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

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

20.11.2019, 22:51. Показов 2514. Ответов 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
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru