Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывести массив чисел в двоичной системе, помогите с алгоритмом 
V
    Опции темы
ololok
  Дата 26.4.2014, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 17.9.2011

Репутация: нет
Всего: нет



Всем привет!
Задача кажется простой, но никак не могу придумать алгоритм построения.
Задача: дан одномерный массив. Вывести на экран : 
Код

000
001
010
011
100
101
110
111


Подскажите как организовать алгоритм? 
Среди идей, только массивы (3х(2^3)), рандомом создавать массив и сравнивать с предыдущими строками, но это ###-код

UPD: Есть ли вообще библиотеки для C++, чтобы переводить из 10 в 2 систему счисления? 

Это сообщение отредактировал(а) ololok - 27.4.2014, 22:24
PM MAIL   Вверх
NoviceF
Дата 28.4.2014, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Цитата(ololok @  26.4.2014,  20:15 Найти цитируемый пост)
UPD: Есть ли вообще библиотеки для C++, чтобы переводить из 10 в 2 систему счисления? 


Код

#include <iostream>

template <typename T>
T rev_bits ( T val )
{
  T ret = 0;
  T n_bits = sizeof ( val ) * CHAR_BIT;

  for ( unsigned i = 0; i < n_bits; ++i ) {
    ret = ( ret << 1 ) | ( val & 1 );
    val >>= 1;
  }

  return ret;
}

template <typename T>
void print_bits ( T val, std::ostream& out )
{
  T n_bits = sizeof ( val ) * CHAR_BIT;

  for ( unsigned i = 0; i < n_bits; ++i ) {
    out<< !!( val & 1 );
    val >>= 1;
  }
}

int main(int argc, char* argv[])
{
    unsigned char mask = 10;

    print_bits(rev_bits(mask), std::cout);

    return 0;
}


Код

00001010


код функций нагло украден отсюда http://faq.cprogramming.com/cgi-bin/smartf...p;id=1073086407
PM MAIL   Вверх
ololok
Дата 3.5.2014, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 17.9.2011

Репутация: нет
Всего: нет



Давно не заходил сюда.
Еще один способ решения, это использовать itoa
Тему можно закрыть 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.