Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.04.2020
Сообщений: 14
1

Бинарное представление числа

25.09.2022, 12:49. Показов 3967. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуете, можно ли занести число в бинарном виде в переменную?
Например :
Есть число 9 в десятичном виде, можно ли занести его в переменную в виде двоичного кода и последующей работы с ним, к примеру если нас 9 будет отрицательна , то мы переведем ее в доп.код в ручную, работая с этой переменной.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2022, 12:49
Ответы с готовыми решениями:

В текстовое представление десятичного числа вставить символ / чтобы получилась корректная запись числа
Для каждого числа из последовательности определить, можно ли поставить внутри числа символ «/»...

Бинарное представление символов кириллицы
Доброго времени суток, помогите разобраться. Имеется строка QString из нее мы берем первый элемент...

Бинарное представление числа
Добрый день, подскажите пожалуйста, откуда берутся числа w x y z? #include <stdio.h> #include...

бинарное представление чисел
Задача: Использовать тернарный оператор и bitwise test вместо Integer.toBinaryString() для...

Как преобразовать число в бинарное представление?
Вопрос по iSA 2004 и SQL2000 ISA пишет в SQL ip-адреса в формате bigint то есть какимто...

17
0 / 0 / 0
Регистрация: 27.04.2020
Сообщений: 14
25.09.2022, 12:51  [ТС] 2
Можно ли , число представленное в двоичном виде занести в отдельную переменную, именно в бинарном представлении ?
0
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
25.09.2022, 13:11 3
Цитата Сообщение от Glaz_ko Посмотреть сообщение
Есть число 9 в десятичном виде, можно ли занести его в переменную в виде двоичного кода
А как вы думаете, оно там в каком коде хранится?
0
415 / 288 / 59
Регистрация: 09.03.2016
Сообщений: 2,528
25.09.2022, 13:38 4
В массив.
Бинарное представление числа
1
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
25.09.2022, 14:10 5
Цитата Сообщение от Glaz_ko Посмотреть сообщение
Есть число 9 в десятичном виде
Что значит "есть"? Как оно есть? Где оно есть? Откуда оно взялось и как хранится?

Если у вас написано int x = 9 то вот это вот девять в коде наверно и есть число "в десятичном виде".

Цитата Сообщение от Glaz_ko Посмотреть сообщение
занести его в переменную в виде двоичного кода
А вот тут уже непонятно, чего вы хотите добиться.

В стандарте С++ ничего нет про двоичные представления чисел в коде.
Есть расширение в GCC, которое позволяет писать что-то вроде int x = 0b10001;.

Вы можете интерпретировать вышеуказанную переменную x как набор битов и обращаться к отдельным битам либо с помощью структур либо с помощью бинарных операций.
1
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
25.09.2022, 14:15 6
Цитата Сообщение от lemegeton Посмотреть сообщение
Есть расширение в GCC, которое позволяет писать что-то вроде int x = 0b10001;.
С C++14 это стандарт.
1
Заблокирован
25.09.2022, 14:48 7
Цитата Сообщение от Glaz_ko Посмотреть сообщение
Есть число 9 в десятичном виде, можно ли занести его в переменную в виде двоичного кода и последующей работы с ним, к примеру если нас 9 будет отрицательна , то мы переведем ее в доп.код в ручную, работая с этой переменной.
Не надо ничего делать, тем более вручную.
Ибо все данные хранятся, передаются и обрабатываются в двоичном виде. Понятие "система счисления" используется только для ввода и вывода.
0
415 / 288 / 59
Регистрация: 09.03.2016
Сообщений: 2,528
25.09.2022, 15:38 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
{
    __int64 value(0x234FA);//<=================
    char buffer[50];    //--
    bool buffer_bool[50];
    _i64toa(value, buffer, 2);//число= 16 в шестнадцатеричных... 
    //--10 в десятичных 2- в двоичных и.т.д.
    for (int i = 0; i < strlen(buffer); ++i)
    {
        if (buffer[i] == '1'){
            buffer_bool[i] = true;
        }
        else {
            buffer_bool[i] = false;
        }    
    }
 
    for (int i = 0; i < strlen(buffer); ++i)
        std::cout << "\n" << std::boolalpha << buffer_bool[i];
 
    std::cin.get();
    return 0;
}
1
Just Do It!
3841 / 2286 / 636
Регистрация: 23.09.2014
Сообщений: 7,073
Записей в блоге: 3
25.09.2022, 16:16 9
Цитата Сообщение от Glaz_ko Посмотреть сообщение
можно ли занести его в переменную в виде двоичного кода
C++
1
2
3
4
5
int main()
{
    int n = 0b00000000000000000000000000000010;
    std::cout << n;
}
out:
Код
2
1
2834 / 2336 / 708
Регистрация: 29.06.2020
Сообщений: 8,655
25.09.2022, 16:35 10
Цитата Сообщение от XLAT Посмотреть сообщение
2
Так нужно же 9.
0
Just Do It!
3841 / 2286 / 636
Регистрация: 23.09.2014
Сообщений: 7,073
Записей в блоге: 3
25.09.2022, 16:39 11
Цитата Сообщение от SmallEvil Посмотреть сообщение
Так нужно же 9.
C++
1
2
3
4
5
int main()
{
    int n = 0b10 << 1 << 1 | 1;
    std::cout    << n;
}
1
101 / 95 / 10
Регистрация: 31.08.2022
Сообщений: 1,014
25.09.2022, 16:47 12
Цитата Сообщение от SmallEvil Посмотреть сообщение
Так нужно же 9.
Код
int main()
{
    int n = 0b1001;
    std::cout << n;
}
Добавлено через 2 минуты
а вообще такие вопросы- это ужаснах
0
2834 / 2336 / 708
Регистрация: 29.06.2020
Сообщений: 8,655
25.09.2022, 17:56 13
Цитата Сообщение от SergP01 Посмотреть сообщение
а вообще такие вопросы- это ужаснах


Конечно ужас. Потому что в быте, никто не задумывается что такое число и его представление.
Пока будем только о натуральных числах.
Человеки, все числа, обычно, представляют в символьном виде, 10 СС, состоящий из следующих символов (цифр)
"0123456789".
Компьютер хранит "числа" (хотя для него нет понятия числа, у него вообще понятий нет)
различными способами. Магнитное поле, электрический заряд и т.д. .
В 2 СС. При обработке представляет 0-и и 1-ы как различные электрические уровни.
Но также в 2 СС.
У компьютера все - это набор двоичных данных.

Теперь ближе к сути вопроса.
Если требуется для человека :
Цитата Сообщение от Glaz_ko Посмотреть сообщение
Есть число 9 в десятичном виде, можно ли занести его в переменную в виде двоичного кода
То это будет :
на входе - строка "9"
на выходе - строка "1001"
Если так интерпретировать вопрос, то ответ : можно!
Для этого нужно преобразовать строковой параметр с 10СС в строковой параметр 2СС.
Таких функций на форуме тьма.

Добавлено через 4 минуты
Цитата Сообщение от Glaz_ko Посмотреть сообщение
к примеру если нас 9 будет отрицательна , то мы переведем ее в доп.код в ручную
Да, для представления отрицательных чисел в двоичном виде также предусмотрена спецификация.
Таких функций на форуме чуть поменьше, но тоже есть.
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
25.09.2022, 18:26 14
Самое простое - представлять двоичное число "как есть":

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
#include <iostream>
 
using namespace std;
 
int conv(int d)
{
     int s,r=0;
     if (d==0) return 0;
     s=(d < 0)?-1:1;
     d=abs(d);
     while (d>0)
     {
          r=r*2+d%10;
          d=d/10;
     }
     return r*s;
}          
 
int main()
{
    
    cout << conv(1001) << endl;
 
    return 0;
}
0
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
25.09.2022, 20:36 15
Цитата Сообщение от Glaz_ko Посмотреть сообщение
Здравствуете, можно ли занести число в бинарном виде в переменную?
Например :
Есть число 9 в десятичном виде, можно ли занести его в переменную в виде двоичного кода и последующей работы с ним, к примеру если нас 9 будет отрицательна , то мы переведем ее в доп.код в ручную, работая с этой переменной.
Как уже сказано, в целых типах, внутреннее представление двоично по определению. Работать с битами нужно при помощи побитовых операций. Однако, если вы хотите представление для визуализации и демонстрации (презентацию для детей сварганить, к примеру), то заводите строку или массив. Массив bool, char или int вполне подойдут.
Glaz_ko, хотите длинную арифметику для себя написать?
0
0 / 0 / 0
Регистрация: 27.04.2020
Сообщений: 14
26.09.2022, 11:27  [ТС] 16
Да , для себя, захотел разобраться в этой теме, и мне понадобилось занести бинарный вид числа в функцию, делал через массив и решил поинтересоваться можно ли это сделать в виде одного числа(в одной переменной).
0
Заблокирован
26.09.2022, 11:32 17
Цитата Сообщение от Glaz_ko Посмотреть сообщение
захотел разобраться в этой теме
ну и как, помогло?
0
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
26.09.2022, 12:08 18
Цитата Сообщение от Glaz_ko Посмотреть сообщение
решил поинтересоваться можно ли это сделать в виде одного числа(в одной переменной
Оно уже тама. Задача визуализации именно в том, чтобы биты сделать элементами массива.
Как вариант - строка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 #include <bitset>
 #include <string>
 
    using std::cout;
    using  std::cin;
    using  std::endl;
 
    template<unsigned digits, typename number_t >
    std::string to_binary(number_t numb)
    {
        return  std::bitset<digits> (numb).to_string();
    }
 
int main()
{
    cout<<to_binary<16, int>(9)<<endl;
 
return 0;
}
0
26.09.2022, 12:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2022, 12:08
Помогаю со студенческими работами здесь

Перевод текста в бинарное представление и наоборот
Как осуществляется перевод буквы в двоичный код и обратно?

Если известно десятичное представление числа 255, 7, то его двоичное представление
1. 11111111, 0111 2. 111111111,1110 3. 11111111, 111 4. FF, 3 5. 255, 111

Программа переводит строковое представление числа в числовое представление
Программа получает запись действительного числа в виде строки. Входная переменная, то есть, имеет...

Перевести строковое представление числа в числовое представление
Программа получает запись действительного числа в виде строки. Входная переменная, то есть, имеет...

Как получить бинарное представление видео-файла (Кодирование видеофайла)
Всем привет. У меня такой вопрос: если любая информация может быть представляна в двоичном виде, то...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru