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

объединить преимущества кодов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вопрос организации хранения данных в файле. Базы Данных http://www.cyberforum.ru/cpp-beginners/thread550386.html
У меня, как у Новичка, есть вопрос по организации хранения записей в БД. суть такова: есть матрица доступа Субъекта к Объекту + права доступа субъекта(чтение, запись, удаление). Пишу программу...
C++ Разработать обучающую программу для заучивания слов английского языка. Разработать обучающую программу для заучивания слов английского языка. \\принцип обучения: -предлогается слово на исходном языке. -для этого слова выводится список иностранных слов. -обучаемый... http://www.cyberforum.ru/cpp-beginners/thread550383.html
C++ Структура железнодорожное расписание
В файле содержится информация о железнодорожном расписании (номер поезда, время прибытия на станция, время отправления название станции ). Разработать структуру поезд, соответствующую формата файла.....
C++ Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.
C++ Создать класс обеспечивающий размещение матрицы произвольного размера http://www.cyberforum.ru/cpp-beginners/thread550370.html
Создать класс обеспечивающий размещение матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывода на экран подматрицы любого размера и всей матрицы.
C++ Составьте программу вычисления произведения элементов матрицы B(N,N), кратных 5. Составьте программу вычисления произведения элементов матрицы B(N,N), кратных 5. подробнее

Показать сообщение отдельно
fantazer333
1 / 1 / 0
Регистрация: 26.12.2009
Сообщений: 47

объединить преимущества кодов - C++

16.04.2012, 22:59. Просмотров 804. Ответов 13
Метки (Все метки)

Задание

Написать программу. Пользователь вводит положительное или отрицательное число. Перевести число в 2-ую систему счисления и вывести результат на экран.

Необходимо сделать максимально просто

нашел 2 кода

№1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int a, b=0, k=1;
    cout<<"Введите десятичное число: ";
    cin>>a;
    while (a) //пока а!=0
    {
        b+=a%2*k; //двоичное число = остаток от деления десятичного 
        //числа на 2 (это, думаю, понятно) * k (разряд) +то, что было в b
        a/=2; //само деление а на 2
        k*=10; //увеличение разряда
    }
    cout<<"Двоичное число: "<<b<<endl;
 
    return 0;
}

№2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
string dectobin(int num) // функция для перевода
{
    string result; // строка для результата
    for (; num!=0; num>>=1) // цикл со сдвигом вправо на 1 бит (работает быстрее чем деление на 2,
         //но также делит)
        result.insert(0, num&1 ? "1" : "0"); // вставка цифры в начало строки (1 если последний бит 1, 0 если 0)
    return result; // возврат результата
}
 
int main(int argc, char *argv[])
{
        // тут думаю понятно, ввод данных и вызов функции
    int num;
    cout<<"Enter number: ";
    cin>>num;
    cout<<dectobin(num);
    return 0;
}

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

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