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

Калькулятор в двоичной системе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ задание ввести с клав m создает массив http://www.cyberforum.ru/cpp-beginners/thread1193959.html
Ввести с клавиатуры m, создает массив a, размером m. Заполнить случайным образом, создать новый массив который будет содержать все елементы массива a за исключением 0, и вывести один до один после Добавлено через 3 часа 20 минут ау)
C++ Проверка ответа пользователя на вопрос: "Продолжить программу или завершить?" Программа запросит следующие: Продолжить программу или завершить? Нужно нажать y для "да" или n для "нет". Подскажите, как реализовать данную штуку? Это всё, что у меня получилось, но оно не работает) Часть кода: char g,y='y',n='n'; do{ cin>>g; http://www.cyberforum.ru/cpp-beginners/thread1193948.html
Удаление vector, list, string C++
Привет! Такая задача. В программе я описал класс Class1. Класс содержит поля стандартных типов, а также поле std::string и std::vector. Также в программе я динамически создаю списки std::list<Class1>. Вопрос, как мне корректно удалить такой список?
C++ Объединение множеств. Некорректная обработка
Подскажите, пожалуйста, почему в 3-ий if не передается значения Set a, Set b Set a; Set b; Set d; Set c; if(choice==1) //âûïîëíåíèå âûáðàííîé îïåðàöèè { a.Show(); } if(choice==2) {
C++ Поиск ошибки в fread http://www.cyberforum.ru/cpp-beginners/thread1193935.html
У меня возникла ошибка. Мне нужно прочесть данные с бинарных файлов. Бинарный файл "a.dat" содержит в себе числа '7 0 1 0 1 0 1 0 2 6 2', но по какой-то причине выводит только 7 символ, при попытки изменить fread(&d, sizeof(d), 1, f1); вылазит Stack around the variable 'd' was corrupted. #include <iostream> using namespace std; int main () { setlocale(LC_ALL, "RUS"); FILE *f1, *f2,...
C++ Команда cd Может написать код команды cd? Или написать такую же по функционалу? Нужно что бы работала в linux. подробнее

Показать сообщение отдельно
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 223
31.05.2014, 00:56  [ТС]     Калькулятор в двоичной системе
Цитата Сообщение от Pjeroo Посмотреть сообщение
if (L1 != L2)
* * {
* * * * if (L1 > L2)
* * * * {
* * * * * * for (int i = 0; i < L2; i++)
* * * * * * * * bvector2[L1-1] = bvector2[L2-1];
* * * * * * memset(bvector2, 0, (L1-L2));
* * * * }
* * }
Спасибо, отличная функция. Не могли бы вы посмотреть, почему не работает в случае если L2 > L1?
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>      
 
using namespace std;
 
int main()
{   
    char bvector1[100];
    char bvector2[100];char rezult[100];
        cin >> bvector1 >> bvector2;
    int L1 = strlen(bvector1);
    for(int i = 0; i < L1; i++)
    {
        bvector1[i] -= '0';
    }
    int L2 = strlen(bvector2);
    for(int i = 0; i < L2; i++)
    {
        bvector2[i] -= '0';
    }   
                    if (L1 != L2)
                    {
                        if (L1 > L2)
                        {
                            for (int i = 0; i < L2; i++)
                                bvector2[L1-1-i] = bvector2[L2-1-i];
                            memset(bvector2, 0, (L1-L2));
                        }
                        if (L2 > L1)
                        {
                            for (int i = 0; i < L1; i++)
                                bvector1[L2-1-i] = bvector1[L1-1-i];
                            memset(bvector1, 0, (L2-L1));
                        }
                        
                    }
                    
    int i; char carry, sum; int q;
    if (L1 > L2)
        q = L1;
    else q = L2;
    i = q - 1;
    carry = 0;
 
    while (i >= 0)
    {
       sum = bvector1[i] + bvector2[i] + carry;
       rezult[i--] = sum & 1;
       carry = sum >> 1;
    }
    printf("\n");
    for (i = 0; i < L1; i++)
        printf("%d",(int)rezult[i]);
    cout << "\n";
    system("Pause");
}
Вроде все верно, но выдает почему-то неверный ответ.
 
Текущее время: 15:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru