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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sandy_park
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
#1

Каждую цифру числа забить в ячейку массива - C++

13.11.2012, 01:09. Просмотров 1143. Ответов 12
Метки нет (Все метки)

Допустим есть какое либо битовое число 001011101 мне нужно его запихать в массив так чтобы
[0] = 0
[1] = 0
[2] = 1
[3] = 0
[4] = 1
[5] = 1
[6] = 1
[7] = 0
[8] = 1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 01:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Каждую цифру числа забить в ячейку массива (C++):

Разбить число на цифры, каждую цифру записать в ячейку массива - C++
Пользователь задает число N с консоли. Программа разбивает полученное число на цифры, получает реверс числа и распечатывает полученный...

Каждую цифру целого числа х, поместить в отдельный элемент массива m - C++
Доброго вечера. Ув. форумчане помогите пожалуйста развязать маленькие задачки по программированию на С++, необходимо написать следующие...

Записать все двоичные числа по порядку каждую цифру в отдельный элемент массива - C++
Дано число p - количество знаков в двоичном числе Нужно записать все двоичные числа по порядку каждую цифру в отдельный элемент...

Вывести все числа до заданного числа, которые делятся на каждую свою цифру. - C++
Нужно написать программу по выводу всех чисел до заданного n, которые делятся на каждую свою цифру. #include <iostream> using...

Вывести каждую цифру из введенного числа - C++
Здравствуйте! Прошу просмотреть код программы и выразить ваше мнение... Может быть допущены какие-то недочеты. Может что-то написано...

Как удвоить каждую цифру трицифрового числа? - C++
Как можно удвоить каждую цифру трицифрового числа? Например 123 - 112233

12
DrobyshevAlex
1169 / 1119 / 16
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 01:19 #2
Ну что то типа
C++
1
2
3
4
5
6
7
char d = 123; // число
char a[8];
char i = 0;
for (i = 0; i < 8; ++i)
{
    a[i] = d & (1 << i);
}
Хотя я не помню точный синтаксис c++

Добавлено через 2 минуты
Массив a и количество итераций цикла навреное луче брать динамически, в зависимости от типа данных. как то так
C++
1
2
3
4
5
6
7
8
char d = 123; // число
unsigned char len = sizeof(d) * 8;
unsigned char a[len];
unsigned char i = 0;
for (i = 0; i < len; ++i)
{
    a[i] = d & (1 << i);
}
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
13.11.2012, 01:23 #3
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
a[i] = d & (1 << i)
и что ты впишешь??
1
10
100
проще (но не эффективней)
C++
1
2
3
4
if(d & (1 << i))
  a[i] =1;
else
  a[i] = 0;
1
DrobyshevAlex
1169 / 1119 / 16
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 01:27 #4
Да, точно забыл
Можно так
C++
1
a[i] = d & (1 << i) ? 1 : 0;
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
13.11.2012, 01:34 #5
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Можно так
это тот же if только вид сбоку компильнется в один и тот же код
вот эффективней но менее понятный
C++
1
a[i]=(char)((d & (1 << i))==(1 << i));
bool приводим к char
если истина 1 если ложь 0
0
DrobyshevAlex
1169 / 1119 / 16
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 01:36 #6
А как то так можно?
C++
1
a[i] = (char)((bool)(d & 1 << i))
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
13.11.2012, 01:38 #7
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
А как то так можно?
а хто знает, не пробовал
хотя должно сработать
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
13.11.2012, 02:06 #8
нада делить число
0
sandy_park
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
13.11.2012, 13:19  [ТС] #9
Что то не получается. Вместо чисел выходят какие то смайлики
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
13.11.2012, 13:35 #10
Цитата Сообщение от sandy_park Посмотреть сообщение
Вместо чисел выходят какие то смайлики
а как выводишь?
надо так
C++
1
printf("%d",a[i]);
0
sandy_park
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
13.11.2012, 14:18  [ТС] #11
Работает спасибо! а почему COUTом не выводилось?
0
DrobyshevAlex
1169 / 1119 / 16
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 14:19 #12
Потому что видимо оно пыталось вывестись как символ. То етсь бралось число, и считалось что это код символа, а по коду выводился символ.
0
sandy_park
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
14.11.2012, 00:14  [ТС] #13
А вы не подскажете как в цикле забить двумерный массив всеми возможными комбинациями битов


например при n = 3 будет двумерный массив

0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

при n = 2 двумерный массив

0 0
0 1
1 0
1 1

для любого n
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 00:14
Привет! Вот еще темы с ответами:

Разделить каждую цифру числа на ее порядковый номер - C++
Уважаемые, подскажите, пожалуйста. Плюсы только начал изучать, всё с нуля. Суть задачи: Дано число. Разделить каждую цифру числа на его...

Посимвольная запись в каждую ячейку символьного массива - C++
Добрый вечер, столкнулся с такой проблемой: считываю данные из файла в поток и оттуда уже в массив, но по неведомой мне причине в одну...

Вывести все числа от 1 до N, делящиеся на каждую свою цифру - C++
Помогите пожалуйста написать программу: Написать программу, которая для числа n, введённого с клавиатуры 1. Выводит все числа от 1...

Вывести все числа от 1 до N, делящиеся на каждую цифру из диапазона от l до r - C++
Задача: Вывести все числа от 1 до N, которые делятся на все числа диапазона от L до R.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
14.11.2012, 00:14
Ответ Создать тему
Опции темы

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