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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перестановка цифр двухзначного числа 
:(
    Опции темы
Dello
Дата 28.11.2007, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задание звучит так: поменять местами цифры двухзначного числа, не используя свойства позиционной системы счисления. Т.е., насколько я понял, надо применять побитовые операции, т.к. инструментарий, который можно использовать - это операции и инструкции С++. Помогите, пожалуйста.
PM MAIL   Вверх
MAKCim
Дата 28.11.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



перевести в строку
изменить порядок следования символов
перевести обратно в число


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
JackYF
Дата 28.11.2007, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Ответ звучит так: если от тебя кода не будет, то тебе прямая дорога в Центр Помощи.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
cardinal
Дата 28.11.2007, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Код

int x = 59;
int a, b;

a = x / 10; // 5
b = x - a * 10; // 9

y = b*10 + a; // 95

Так на скорую руку...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
MAKCim
Дата 28.11.2007, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



cardinal
имхо, тут используется
Цитата(Dello @  28.11.2007,  21:23 Найти цитируемый пост)
свойства позиционной системы счисления




--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Dello
Дата 28.11.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Люди, вы читать умеете? Черным по белому написано: не используя свойства позиционной системы счисления. Нельзя переводить в строку. Использовать побитовые операции. Мне кажется, деление на 10 - это использование позиционной СС, перевод в строку - не очень побитовая операция. Я не прав?
PM MAIL   Вверх
MAKCim
Дата 28.11.2007, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Dello
Цитата(Dello @  28.11.2007,  22:12 Найти цитируемый пост)
Нельзя переводить в строку.

ты этого не написал в своем первом посте
Цитата(Dello @  28.11.2007,  22:12 Найти цитируемый пост)
Использовать побитовые операции

Цитата(Dello @  28.11.2007,  21:23 Найти цитируемый пост)
Т.е., насколько я понял, надо применять побитовые операции,

это ты так решил или тебе сказали?  smile 


Это сообщение отредактировал(а) MAKCim - 28.11.2007, 22:16


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
JackYF
Дата 28.11.2007, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Я, конечно, извиняюсь, но задание звучит так: нарубите, пожалуйста, дров, только деревьев и топора нет.

Число - это всего лишь биты в памяти. Каким образом, не зная основы системы счисления, можно поменять цифры в числе?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bsa
Дата 28.11.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Dello, как вводятся данные? В какой системе счисления?
Если данные вводятся в виде строки, то можно просто поменять символы.
Если данные вводятся в 16-ти, 8-ми или двоичной системах счисления, то можно использовать сдвиги и побитовые AND и OR.
PM   Вверх
Dello
Дата 28.11.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



MAKCim,
Цитата

это ты так решил или тебе сказали?


сказали.

Добавлено через 3 минуты и 7 секунд
JackYF, полностью согласен.  smile  Но дело в том, что это я не пытаюсь создать такое положение, а меня в такое положение самого поставили. Причем в том, что это можно сделать, я абсолютно уверен, так как на это указал компетентый человек (но вредный, видимо).

bsa В десятичной. Строки нельзя использовать.
PM MAIL   Вверх
bsa
Дата 28.11.2007, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Dello, вот найди того, кто сказал и пусть объяснит поподробней.
PM   Вверх
MAKCim
Дата 28.11.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Dello
имхо, в 10-ой СС это никак не сделаешь


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
MAKCim
Дата 28.11.2007, 22:53 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Код

int array[] = {
    1, 11, 21, 31, 41, 51, 61, 71, 81, 91, 2, 12, 22, 32, 42, 52, 62, 72, 82, 92,
    3, 13, 23, 33, 43, 53, 63, 73, 83, 93, 4, 14, 24, 34, 44, 54, 64, 74, 84, 94,
    5, 15, 25, 35, 45, 55, 65, 75, 85, 95, 6, 16, 26, 36, 46, 56, 66, 76, 86, 96,
    7, 17, 27, 37, 47, 57, 67, 77, 87, 97, 8, 18, 28, 38, 48, 58, 68, 78, 88, 98,
    9, 19, 29, 39, 49, 59, 69, 79, 89, 99
};

inline int convert(int number) {
    return array[number - 10];
}



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bsa
Дата 28.11.2007, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



MAKCim, не лень было?
PM   Вверх
MAKCim
Дата 28.11.2007, 22:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(bsa @  28.11.2007,  22:54 Найти цитируемый пост)
MAKCim, не лень было? 

неа  smile 
3 минуты драгоценного времени


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
cardinal
Дата 28.11.2007, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Цитата(Dello @  28.11.2007,  21:21 Найти цитируемый пост)
В десятичной. Строки нельзя использовать. 

Я если честно так и не понял, где я использовал строки или 
Цитата(Dello @  28.11.2007,  21:12 Найти цитируемый пост)
используя свойства позиционной системы счисления.

Какие свойства? И что они в коде MAKCim'а не используются? 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
MAKCim
Дата 28.11.2007, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(cardinal @  28.11.2007,  23:20 Найти цитируемый пост)
Я если честно так и не понял, где я использовал строки или 

делишь на 10, чтобы получить десятичный разряд
Цитата(cardinal @  28.11.2007,  23:20 Найти цитируемый пост)
И что они в коде MAKCim'а не используются?  

да вроде как нет


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
cardinal
Дата 28.11.2007, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Цитата(MAKCim @  28.11.2007,  22:24 Найти цитируемый пост)
делишь на 10, чтобы получить десятичный разряд

Так а где здесь "строки", они же char* они же string?
Цитата(MAKCim @  28.11.2007,  22:24 Найти цитируемый пост)
да вроде как нет 

Так на дело смотреть, так и у тебя цифра 10 присутствует.

Или просто задание звучит так: сделать!, но не просто, а через жопу? smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
MAKCim
Дата 28.11.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(cardinal @  28.11.2007,  23:49 Найти цитируемый пост)
Так а где здесь "строки", они же char* они же string?

строки не причем
ты используешь свойство позиционной СС
Цитата(cardinal @  28.11.2007,  23:49 Найти цитируемый пост)
Так на дело смотреть, так и у тебя цифра 10 присутствует.

10 - это смещение в массиве
т. к двузначных чисел всего 90
первое двузначное число - 10, а индекс в массиве начинается с 0
т. е 10 здесь используется совсем не в контексте позиционной СС


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
cardinal
Дата 29.11.2007, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Почитал тут
http://works.tarefer.ru/69/100903/index.html
помоему понял что хотят, а именно "перевернуть двухзначное число, рассматривая его как строку, но не пользуясь строками" smile 

Помоему забить все это в массив как-то неэлегантно...

Но что-то придумать как добиться этого результата при помощи побитных операций не использую свойств позиционной СС не могу. smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Dims
Дата 29.11.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



В задании ведь не сказано, что число десятичное smile
Так что, можно положить, что оно 16-ричное.
Поэтому, надо просто отсечь маской старший байт и сдвинуть младший влево на 4 бита, а затем побитово сложить со сдвинутым вправо на 4 бита исходным числом.
PM MAIL   Вверх
cardinal
Дата 29.11.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



В задании не сказано, а автором сказано
Цитата(bsa @  28.11.2007,  21:18 Найти цитируемый пост)
Dello, как вводятся данные? В какой системе счисления?

Цитата(Dello @  28.11.2007,  21:21 Найти цитируемый пост)
bsa В десятичной.

А в десятичной все нет так просто. Достаточно посмотреть на числа 8 и 9 smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
bsa
Дата 29.11.2007, 15:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



с другой стороны, кто мешает интерпретировать 10-ичное, как 16-ричное?
PM   Вверх
JackYF
Дата 29.11.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(bsa @  29.11.2007,  15:23 Найти цитируемый пост)
с другой стороны, кто мешает интерпретировать 10-ичное, как 16-ричное?

никто... результат будет неправильный.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bsa
Дата 29.11.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



"15" - это сколько?
можно представить, что это 0x15? затем методом сдвигов и логических OR и AND объединяем и получаем 0x51, выводим, получаем "51" - то что хотели?  smile 
PM   Вверх
cardinal
Дата 29.11.2007, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Цитата(bsa @  29.11.2007,  17:17 Найти цитируемый пост)
то что хотели? 

Нет, т.к. строками пользоваться нельзя... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
bsa
Дата 29.11.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



cardinal, а вводить тогда как?!? программа читает из бинарного файла число?
PM   Вверх
MAKCim
Дата 29.11.2007, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(bsa @  29.11.2007,  18:17 Найти цитируемый пост)
можно представить, что это 0x15? затем методом сдвигов и логических OR и AND объединяем и получаем 0x51, выводим, получаем "51" - то что хотели? 

я полагаю, число представляется каким-то числовым типом (int, short, long)
поэтому этот метод не прокатит
Цитата(bsa @  29.11.2007,  21:35 Найти цитируемый пост)
а вводить тогда как?!? программа читает из бинарного файла число? 

Код

int convert(int number) {
...
}

int main() {
    int number;
    scanf("%d", &number);
    printf("%d\n", convert(number));
    return 0;
}



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
JackYF
Дата 29.11.2007, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(MAKCim @  29.11.2007,  22:35 Найти цитируемый пост)
scanf("%d", &number);

ага, scanf тоже пользуется тем, что система счисления десятичная smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
SergeCpp
Дата 30.11.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

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



Код
int reverse( int i )
{
    if( i < 90 || i > 99 )
    {
        return 0;
    }

    int i0( i >> 0 & 1 );
    int i1( i >> 1 & 1 );
    int i2( i >> 2 & 1 );
    int i3( i >> 3 & 1 );
    int i4( i >> 4 & 1 );
    int i5( i >> 5 & 1 );
    int i6( i >> 6 & 1 );
    int i7( i >> 7 & 1 );

    int v0( i0 ^ 1 );
    int v1( i1 ^ 1 );
    int v2( i2 ^ 1 );
    int v3( i3 ^ 1 );
    int v4( i4 ^ 1 );
    int v5( i5 ^ 1 );
    int v6( i6 ^ 1 );
    int v7( i7 ^ 1 );

    int r0( 1  );
    int r1( i0 );
    int r2( v1 );
    int r3( i0 ^ i1 ^ i2 );
    int r4( ( v5 & i4 & i3 & v2 & i1 & i0 ) |
            ( v5 & i4 & i3 & i2 & v1 & v0 ) |
            ( v5 & i4 & i3 & i2 & i1 & v0 ) |
            ( v5 & i4 & i3 & i2 & i1 & i0 ) |
            ( i5 & v4 & v3 & v2 & i1 & v0 ) );
    int r5( ( v5 & i4 & i3 & i2 & v1 & i0 ) |
            ( v5 & i4 & i3 & i2 & i1 & v0 ) |
            ( v5 & i4 & i3 & i2 & i1 & i0 ) |
            ( i5 & v4 & v3 & v2 & i1 & i0 ) );
    int r6( i5 );
    int r7( 0  );

    return r7 << 7 | r6 << 6 | r5 << 5 | r4 << 4 | r3 << 3 | r2 << 2 | r1 << 1 | r0 << 0;
}

Расширение диапазона предлагается как упражнение для господ интересующихся user posted image

PM MAIL WWW ICQ   Вверх
MAKCim
Дата 30.11.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



SergeCpp
ты крут  smile  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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