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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Baustrel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 26
#1

Поменять местами содержимое четных и нечетных разрядов в младшем байте - C++

15.04.2012, 22:24. Просмотров 1346. Ответов 8
Метки нет (Все метки)

1 Найти количество чисел из диапазона от 100000 до 999999, у которых произведение первых 4 разрядов равно произведению 3 последних. Сколько среди них простых чисел.

2 Задано целое число типа WORD. Поменять местами содержимое четных и нечетных разрядов в младшем байте. Алгоритм преобразования оформить в виде функции. Исходное число и результат вывести в двоичной и десятичной форме.

Добавлено через 9 часов 9 минут
Есть какие мысли?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 22:24     Поменять местами содержимое четных и нечетных разрядов в младшем байте
Посмотрите здесь:

В строке символов поменять местами символы на четных и нечетных позициях C++
Поменять местами слова строки стоящие на четных и нечетных позициях C++
C++ Ввести два числа типо unsighed short,распечатать число,которое содержит в младшем байте большее значение
В одномерном массиве А(10) поменять местами элементы стоящие на четных и нечетных местах C++
Пробел в старшем и младшем байте массива. Каким образом?! C++
Массивы: поменять местами соседние элементы, стоящие на четных местах, с элементами ,стоящими на нечетных местах C++
В рендомно заполненном массиве поменять местами значения четных и нечетных индексов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.04.2012, 22:51     Поменять местами содержимое четных и нечетных разрядов в младшем байте #2
Цитата Сообщение от Baustrel Посмотреть сообщение
Есть какие мысли?
Ну в первом делаешь перебор. Последний разряд - (число%10). Потом для следующего разряда - число=число/10. И точно так (число%10). И т.д. Перемножаешь, что надо, сравниваешь.
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
15.04.2012, 23:06     Поменять местами содержимое четных и нечетных разрядов в младшем байте #3
разряды десятичные?
Baustrel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 26
16.04.2012, 19:03  [ТС]     Поменять местами содержимое четных и нечетных разрядов в младшем байте #4
нет, двоичные

Добавлено через 19 часов 35 минут
Очень срочно помощь нужна, хотя бы на первую задачу)
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
16.04.2012, 19:18     Поменять местами содержимое четных и нечетных разрядов в младшем байте #5
хотя бы на первую
C
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
int x;
int lowodd;
int loweven;
scanf("%d", &x);
lowodd=x&0xAA;
loweven=x&0x55;
x=x-(x&0xFF);//обнуление мл. байта, наверное лучше x=x&0xFFFFFF00, но тоже сойдёт.
x=x|(lowodd>>1)|(loweven<<1);
printf("%d", x);
return 0;
}
Baustrel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 26
16.04.2012, 19:44  [ТС]     Поменять местами содержимое четных и нечетных разрядов в младшем байте #6
Спасибо конечно, но что-то не то она делает
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
16.04.2012, 20:21     Поменять местами содержимое четных и нечетных разрядов в младшем байте #7
что конкретно не то?? Она меняет чётные и нечётные разряды младшего байта целого числа.
Я написал только первую задачу, а второй тут нет.

Добавлено через 11 минут
Прочитал условие задачи ещё раз: там дано число типа WORD
ему соответствует тип unsigned short, поэтому лучше так.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
unsigned short x;
unsigned short lowodd;
unsigned short loweven;
scanf("%d", &x);
lowodd=x&0xAA;
loweven=x&0x55;
x=x-(x&0xFF);//обнуление мл. байта, наверное лучше x=x&0xFFFFFF00, но тоже сойдёт.
x=x|(lowodd>>1)|(loweven<<1);
printf("%d", x);
return 0;
}
что здесь может не работать? это твои слова
я решил только первую из задач!
Baustrel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 26
16.04.2012, 20:26  [ТС]     Поменять местами содержимое четных и нечетных разрядов в младшем байте #8
1 Найти количество чисел из диапазона от 100000 до 999999, у которых произведение первых 4 разрядов равно произведению 3 последних. Сколько среди них простых чисел. а с вот этой что?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 20:34     Поменять местами содержимое четных и нечетных разрядов в младшем байте
Еще ссылки по теме:

C++ Поменять местами элементы, стоящие на четных местах, с элементами, стоящими на нечетных
Поменять значения четных и нечетных ячеек массива C++
C++ Поменять значения четных и нечетных ячеек массива
C++ Массив: поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных
C++ Поменять попарно местами символы, расположенные на четных и нечетных позициях

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
16.04.2012, 20:34     Поменять местами содержимое четных и нечетных разрядов в младшем байте #9
Это не та задача, которую я решил, я менял местами разряды в младшем байте.
[CPP]что конкретно не то?? Она меняет чётные и нечётные разряды младшего байта целого числа.
Я написал только первую задачу, а второй тут нет.

Добавлено через 11 минут
Прочитал условие задачи ещё раз: там дано число типа WORD
ему соответствует тип unsigned short, поэтому лучше так.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#define BINPRINT(x) printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d"\
, ((x)&(1<<15))?1:0\
, ((x)&(1<<14))?1:0\
, ((x)&(1<<13))?1:0\
, ((x)&(1<<12))?1:0\
, ((x)&(1<<11))?1:0\
, ((x)&(1<<10))?1:0\
, ((x)&(1<<9))?1:0\
, ((x)&(1<<8))?1:0\
, ((x)&(1<<7))?1:0\
, ((x)&(1<<6))?1:0\
, ((x)&(1<<5))?1:0\
, ((x)&(1<<4))?1:0\
, ((x)&(1<<3))?1:0\
, ((x)&(1<<2))?1:0\
, ((x)&(1<<1))?1:0\
, ((x)&(1<<0))?1:0)
int main()
{
unsigned short x, y;
unsigned short lowodd;
unsigned short loweven;
scanf("%us", &y);
x=y;
lowodd=x&0xAA;
loweven=x&0x55;
x=x&0xFF00;
x=x|(lowodd>>1)|(loweven<<1);
printf("decimal given %us\n", y);
printf("decimal result %us\n", x);
printf("binary given \n"); BINPRINT(y);
printf("binary result \n"); BINPRINT(x);
return 0;
}
я решил только первую из задач!
что здесь может не работать? это твои слова?
Задано целое число типа WORD. Поменять местами содержимое четных и нечетных разрядов в младшем байте. Алгоритм преобразования оформить в виде функции. Исходное число и результат вывести в двоичной и десятичной форме.
Yandex
Объявления
16.04.2012, 20:34     Поменять местами содержимое четных и нечетных разрядов в младшем байте
Ответ Создать тему
Опции темы

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