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

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

Восстановить пароль Регистрация
 
sandy_park
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
13.11.2012, 01:09     Каждую цифру числа забить в ячейку массива #1
Допустим есть какое либо битовое число 001011101 мне нужно его запихать в массив так чтобы
[0] = 0
[1] = 0
[2] = 1
[3] = 0
[4] = 1
[5] = 1
[6] = 1
[7] = 0
[8] = 1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 01:09     Каждую цифру числа забить в ячейку массива
Посмотрите здесь:

C++ Вывести все числа от 1 до N, делящиеся на каждую свою цифру
Записать все двоичные числа по порядку каждую цифру в отдельный элемент массива C++
C++ Разбить число на цифры, каждую цифру записать в ячейку массива
Как удвоить каждую цифру трицифрового числа? C++
Поменять каждую согласную русскую букву на цифру «8», а каждую гласную – на символ «–» C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrobyshevAlex
1164 / 1114 / 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);
}
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
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;
DrobyshevAlex
1164 / 1114 / 16
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 01:27     Каждую цифру числа забить в ячейку массива #4
Да, точно забыл
Можно так
C++
1
a[i] = d & (1 << i) ? 1 : 0;
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
13.11.2012, 01:34     Каждую цифру числа забить в ячейку массива #5
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Можно так
это тот же if только вид сбоку компильнется в один и тот же код
вот эффективней но менее понятный
C++
1
a[i]=(char)((d & (1 << i))==(1 << i));
bool приводим к char
если истина 1 если ложь 0
DrobyshevAlex
1164 / 1114 / 16
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 01:36     Каждую цифру числа забить в ячейку массива #6
А как то так можно?
C++
1
a[i] = (char)((bool)(d & 1 << i))
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
13.11.2012, 01:38     Каждую цифру числа забить в ячейку массива #7
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
А как то так можно?
а хто знает, не пробовал
хотя должно сработать
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
13.11.2012, 02:06     Каждую цифру числа забить в ячейку массива #8
нада делить число
sandy_park
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
13.11.2012, 13:19  [ТС]     Каждую цифру числа забить в ячейку массива #9
Что то не получается. Вместо чисел выходят какие то смайлики
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
13.11.2012, 13:35     Каждую цифру числа забить в ячейку массива #10
Цитата Сообщение от sandy_park Посмотреть сообщение
Вместо чисел выходят какие то смайлики
а как выводишь?
надо так
C++
1
printf("%d",a[i]);
sandy_park
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
13.11.2012, 14:18  [ТС]     Каждую цифру числа забить в ячейку массива #11
Работает спасибо! а почему COUTом не выводилось?
DrobyshevAlex
1164 / 1114 / 16
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 14:19     Каждую цифру числа забить в ячейку массива #12
Потому что видимо оно пыталось вывестись как символ. То етсь бралось число, и считалось что это код символа, а по коду выводился символ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 00:14     Каждую цифру числа забить в ячейку массива
Еще ссылки по теме:

Дано число. Разделить каждую цифру десятичной записи этого числа на его порядковый номер. Полученное число нап C++
C++ Разделить каждую цифру десятичной записи этого числа на его порядковый номер. Полученное число напечатать
Вывести все числа от 1 до N, делящиеся на каждую цифру из диапазона от l до r C++

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

Или воспользуйтесь поиском по форуму:
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
Yandex
Объявления
14.11.2012, 00:14     Каждую цифру числа забить в ячейку массива
Ответ Создать тему
Опции темы

Текущее время: 18:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru