Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
sandy_park
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
#1

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

13.11.2012, 01:09. Просмотров 1343. Ответов 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
Ответы с готовыми решениями:

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

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

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

Вывести все числа до заданного числа, которые делятся на каждую свою цифру.
Нужно написать программу по выводу всех чисел до заданного n, которые делятся...

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

12
DrobyshevAlex
1172 / 1122 / 94
Регистрация: 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
Модератор
7170 / 5437 / 674
Регистрация: 14.02.2011
Сообщений: 18,369
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
1172 / 1122 / 94
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 01:27 #4
Да, точно забыл
Можно так
C++
1
a[i] = d & (1 << i) ? 1 : 0;
0
ValeryS
Модератор
7170 / 5437 / 674
Регистрация: 14.02.2011
Сообщений: 18,369
13.11.2012, 01:34 #5
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Можно так
это тот же if только вид сбоку компильнется в один и тот же код
вот эффективней но менее понятный
C++
1
a[i]=(char)((d & (1 << i))==(1 << i));
bool приводим к char
если истина 1 если ложь 0
0
DrobyshevAlex
1172 / 1122 / 94
Регистрация: 31.05.2012
Сообщений: 3,059
13.11.2012, 01:36 #6
А как то так можно?
C++
1
a[i] = (char)((bool)(d & 1 << i))
0
ValeryS
Модератор
7170 / 5437 / 674
Регистрация: 14.02.2011
Сообщений: 18,369
13.11.2012, 01:38 #7
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
А как то так можно?
а хто знает, не пробовал
хотя должно сработать
0
slipp1
13 / 12 / 9
Регистрация: 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
Модератор
7170 / 5437 / 674
Регистрация: 14.02.2011
Сообщений: 18,369
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
1172 / 1122 / 94
Регистрация: 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
14.11.2012, 00:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 00:14

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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