Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
#1

Перевести длинное целое число в двоичный вид - C++

02.06.2014, 09:15. Просмотров 1133. Ответов 14
Метки нет (Все метки)

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

как использовать тот факт , что я знаю длину массива в десятичном представлений ?

Когда использовал для этого стек , но тут приходиться предельно покампактнее все делать

как без стека обойтись ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2014, 09:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевести длинное целое число в двоичный вид (C++):

Дано длинное целое неотрицательное число - C++
Условие: Я правильно понимаю? Если у меня дано число 15643 (0011 1101 0001 1011), то я должен в двоичном представлении...

В диалоговом режиме задается длинное целое число A (long int) - C++
В диалоговом режиме задается длинное целое число A (long int). определить, сколько цифр числа делится на Z. помогите с задачкой...

Перевести длинное двоичное число в 10 систему - C++
Имеется длинное двоичное число, хранящееся в char. Необходимо перевести его в десятичную систему счисления. Как это можно сделать? ...

Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый - C++
Всем привет. Есть такая задачка: "текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый" ...

Перевести целое число из десятичной системы счисления в двоичную, используя алгоритм деления на 2 - C++
как решается?!Над тремя задачами уже часа два бьюсь! 16. Перевести целое число из десятичной системы счисления в двоичную, используя...

Перевести целое число из десятичной системы счисления в двоичную (алгоритм + блок-схема) - C++
Помогите пожалуйста сделать алгоритм блок-схемы .Задание:Перевести целое число из десятичной системы счисления в двоичную.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dimabubyakin
159 / 124 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
02.06.2014, 09:36 #2
Qazan, динамический массив
0
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
02.06.2014, 09:42  [ТС] #3
dimabubyakin, Это дополнительно N*(N - 1) /2 операций ,стек тут по моему дешевле будет
может, что есть круче , что позволяющее на рас найти длину массива и все

верхнюю оценку хотя бы ,потом просто откушу лишнее
0
dimabubyakin
159 / 124 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
02.06.2014, 09:43 #4
Qazan, тогда в чем проблема? Вспоминаем правила перевода в двоичную систему и заносим в стек)
0
ValeryS
Модератор
6634 / 5041 / 466
Регистрация: 14.02.2011
Сообщений: 16,852
02.06.2014, 09:52 #5
Цитата Сообщение от Qazan Посмотреть сообщение
что я знаю длину массива в десятичном представлений
как лежат данные?
если вот так
int a[10];
то нужно подсчитать длину массива в байтах и умножить на 8
C++
1
sizeof(a)*8;
0
dimabubyakin
159 / 124 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
02.06.2014, 10:05 #6
Вот набросал программку которая переводит такие числа)
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
#include <iostream>
using namespace std;
struct Stack
{
    short data;
    Stack *Next;
};
int main()
{   
    unsigned long long a;
    while(true)
    {
        cin>>a;
        if(a==0)break;
        Stack *Top, *Help;
        Top=new(Stack);
        Top->Next=NULL;
        Top->data=a%2;  
        a/=2;
        while(true)
        {
            Help=new(Stack);
            Help->Next=Top;
            Top=Help;
            Top->data=a%2;
            a/=2;
            if(a==0)break;
        }
        do
        {
            cout<<Top->data;
            Top=Top->Next;
        }while(Top!=NULL);
        cout<<endl;
    }
    return 0;
}
0
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
02.06.2014, 10:15  [ТС] #7
ValeryS, не очень понял
откуда цифра 8 ?

Добавлено через 3 минуты
dimabubyakin, Спасибо , но .. длинное да не очень ;
Длинная арифметика ,числа порядка 100 ни знакомест и больше
0
dimabubyakin
159 / 124 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
02.06.2014, 10:17 #8
Qazan, 8 так как 1 байт у нас 8 бит)

Добавлено через 1 минуту
Qazan, с такими числами конечно не работал, но тогда думаю можно считать число как строку
0
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
02.06.2014, 10:21  [ТС] #9
Цитата Сообщение от dimabubyakin Посмотреть сообщение
считать число как строку
Да все верно
0
dimabubyakin
159 / 124 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
02.06.2014, 10:23 #10
Qazan, а вот как потом ее обрабатывать, ведь насколько мне известно со строкой у нас арифметические действия не произваодятся
0
ValeryS
Модератор
6634 / 5041 / 466
Регистрация: 14.02.2011
Сообщений: 16,852
02.06.2014, 10:34 #11
Цитата Сообщение от Qazan Посмотреть сообщение
Да все верно
так может расскажешь как у тебя представлено длинное число?
и как ты хочешь хранить двоичное представление?
0
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
02.06.2014, 10:37  [ТС] #12
dimabubyakin, столбиком делить ,каждое число переводить в int

C++
1
  string[i] -= '0';
Добавлено через 49 секунд
ValeryS, std::vector<bool>

Добавлено через 56 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение
представлено длинное число?
std::string s

Добавлено через 51 секунду
Через него иницализирую класс, внутреннее представление двоичное как сказал выше в vector-е
0
ValeryS
Модератор
6634 / 5041 / 466
Регистрация: 14.02.2011
Сообщений: 16,852
02.06.2014, 10:38 #13
Цитата Сообщение от Qazan Посмотреть сообщение
std::vector<bool>
что bool? это как двоичные хранить будешь?
а как число представлено?
0
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
02.06.2014, 10:43  [ТС] #14
ValeryS,
Цитата Сообщение от Qazan Посмотреть сообщение
std::string s
Добавлено через 36 секунд
ValeryS,
Цитата Сообщение от Qazan Посмотреть сообщение
Через него иницализирую класс, внутреннее представление двоичное как сказал выше в vector-е
0
ValeryS
Модератор
6634 / 5041 / 466
Регистрация: 14.02.2011
Сообщений: 16,852
02.06.2014, 10:46 #15
Цитата Сообщение от Qazan Посмотреть сообщение
std::string s
значит смотрим один разряд десятичного 4 разряда двоичного 10 = 1010b
3 разряда десятичного 10 разрядов двоичного 1000= 1111101000b

значит считываешь длину строки и рассчитываешь

но это не правильно разрядность должна быть константой например 128 разрядов или 256
21024=1,797693134862315907729305190789*10308
хватит тебе такого размера?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 10:46
Привет! Вот еще темы с ответами:

Составить функцию, которая, получив целое число определяет, уменьшается ли оно в целое число раз - C++
задание такое Составить функцию, которая, получив целое число определяет, уменьшается ли оно в целое число раз, если у него удалить...

Написать объявление функции, возвращающую целое число и принимающую указатель на целое число - C++
объявите функцию f2, возвращающую результат целого типа и передающую указатель на переменную а целого типа. вызовите функцию f2 с...

Преобразование чисел в двоичный вид - C++
Задача.С клавиатуры вводится целое число. Необходимо вывести его двоичное представление на экран. Отрицательные числа выводятся в...

Целое число перевести в 16-ричное и 8-ричное представление с помощью объекта - C++
написать программу которая для введенного пользователя целого числа выводит значение в 16-ом и 8-ом коде с использованием объекта cygwin


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.06.2014, 10:46
Ответ Создать тему
Опции темы

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