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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, является ли число простым http://www.cyberforum.ru/cpp-beginners/thread371406.html
сама задача: характеристикой столбца целочисленной матрицы назовем сумму эле-ментов, являющихся простыми числами. Упорядочить столбцы матрицы по убыванию их характеристик.
C++ bios.h // все написал, но непонятно, почему-то бузит по поводу bios.h, первый раз сталкиваюсь с проблемой такой, fatal error C1083: Не удается открыть файл включение: bios.h: No such file or directory вот код #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <io.h> http://www.cyberforum.ru/cpp-beginners/thread371403.html
C++ Vector
Помогите написать класс vector по типу шаблона vector
C++ Вывести на экран суммы элементов каждой строки матрицы.
Задана матрица размером NxM. Вывести на экран суммы элементов каждой строки матрицы.
C++ Подсчитать сумму положительных чисел. http://www.cyberforum.ru/cpp-beginners/thread371372.html
Помогите написать программу в С# Дан массив вещественных случайных чисел (размер массива определяет поль-зователь, но в диапазоне ). Подсчитать сумму положительных чисел. P.S. Вот то что пыталась сделать самостоятельно, но только больше запуталась и смысл вроде понимаю и сделать ничего не могу. #include <math.h> #include <iostream> #include <stdlib.h> #include <time.h>
C++ Вычитание строк с помощью оператора Никак не могу реализовать вычитание строк с помощью оператора, вот все что пришло на ум подскажите как правильно сделать. В общем нужно чтобы из надписи "Это трудный - трудный тест" получилась надпись "Это - тест". class str_type { char string; ///... str_type str_type::operator=(char *str) { подробнее

Показать сообщение отдельно
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
24.10.2011, 04:19     Как додать два числа на битовом уровне С++
Цитата Сообщение от M@k7 Посмотреть сообщение
но вводить мне то какраз нужно цыфры в десятеричной системе
вот навоял вам сложение как вам надо. вводите целые положительные числа по основанию 10.

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
78
79
80
81
82
83
84
85
#include "stdafx.h"
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
 
#include <sstream>
using std::stringstream;
 
 
//записываем десятичное число в двоичном виде
void int2str(char  str[], const int * size ,int * num){
    int i = *size-1;
    while(*num/2 > 0){
        str[i] = *num -((*num/2)*2)+'0'; 
        *num = *num/2;
        i--;
    }
    str[i] = *num + '0';
}
 
 
//складываем по битам
void sum(const char num1[], const char num2[], char res[], const int *size){
    int i = *size -1;
    int add = 0;
    while(i >=0){
        if(num1[i] == '0' && num2[i] == '0') {
            if(add == 1){
                res[i] = 1 + '0';
                add = 0;
            } else{
                res[i] = 0 + '0';
            }
        } else if (num1[i] == '0' && num2[i] == '1' || num1[i] == '1' && num2[i] == '0'){
            if(add == 1){
                res[i] = 0 + '0';
                add = 1;
            } else {
                res[i] = 1 + '0';
            }
        } else if(num1[i] == '1' && num2[i] == '1') {
            if(add == 1){
                res[i] = 1 + '0';
            } else {
                res[i] = 0 + '0';
                add = 1;
            }
        }
        i-=1;
    }
 
}
 
int main(){
    const int size = 32;
    char num1[size] = {};
    char num2[size] = {};
    char res[size] = {};
    int num;
 
    //забиваем все нулями
    for(int i = 0; i < size; ++i){
        num1[i] = '0';
        num2[i] = '0';
        res[i] = '0';
    }
 
    cout << "Enter first number" << endl;
    cin >> num;
    int2str(num1, &size, & num);
 
    cout << "Enter second number" << endl;
    cin >> num;
    int2str(num2, &size, & num);
 
    sum(num1, num2, res, &size);
 
    for(int i = 0; i < size; ++i){
        cout << res[i];
    }
    cout << endl;
    system("pause");
    return 0;
}
Добавлено через 3 минуты
изменяйте значение const int size = 32; чтобы была разрядность меньше. например при сложение 229 и 110 вы получите число длиной 9 бит. посему поставте например const int size = 16; вполне достаточно.

Не по теме:

это программа рабочая. но с точки зрения компьютера и вычислений которые он проводит она примитивна и нецелесообразна.



Добавлено через 14 минут
строки
C++
1
2
#include <sstream>
using std::stringstream;
надо удалить из кода. забыл удалить после экспериментов
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru