Имя пользователя:
Пароль:
 

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


на этом коде можешь отрепетировать арифметику
Код: Выделить весь код
#include <iostream>
#include <string>
using namespace std;

unsigned from_binary(const string& str)
{
    unsigned result = 0;

    for (unsigned pos=0; pos<str.size(); ++pos)
    {
        result = (result << 1) | (str[pos]=='1');
    }

    return result;
}

void print_binary(unsigned value)
{
//    // вариант 1: со сдвигом

//    for (unsigned bitn=32; --bitn<32; )
//    {
//        static const char bit_values[2] = "-x";
//        cout << bit_values[0x1 & (value >> bitn)];
//    }

//    cout << "\n";

    // вариант 2: перебор битов

    for (unsigned bit1=1<<31; bit1; bit1>>=1)
    {
        cout << (bit1 & value ? 'x' : '-');
    }

    cout << "\n";
}

void main()
{
    // перевели из двоичного (в с++ билдере не работает запись 0b1110101010101)
    unsigned value1 = from_binary("00001010001010010111");
    unsigned value2 = from_binary("00000010010100010001");

    print_binary(value1);
    print_binary(value2);
    print_binary(value1 & value2);
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:42, 10-03-2009 | #3