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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Gnum
0 / 0 / 0
Регистрация: 17.08.2016
#1

Ввести число с клавиатуры поменять местами старшую и младшую половины - C++

17.05.2010, 09:06. Просмотров 1194. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста в решении задачи на побитовую разработку программы на Си

Ввести число с клавиатуры поменять местами старшую и младшую половины

Заранее большое спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2010, 09:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ввести число с клавиатуры поменять местами старшую и младшую половины (C++):

Столбцы левой половины массива поменять местами со столбцами правой половины - C++
Дан двумерный массив из четного числа столбцов. Столбцы левой половины массива поменять местами со столбцами правой половины

Столбцы левой половины матрицы поменять местами со столбцами правой половины - C++
Написать программу с выделением памяти для динамического массива с рандомными значениями. Условие: Дан двумерный массив из четного...

7. Дана матрица размера M × N (M — четное число). Поменять местами верхнюю и нижнюю половины матрицы. - C++
Дана матрица размера M × N (M — четное число). Поменять местами верхнюю и нижнюю половины матрицы.

Сжать массив, удалив из него элементы, имеющие одинаковые старшую и младшую цифры - C++
Вот как я пытался сделать это #include <iostream> using namespace std; int main() { int n,i,j,y,x; int...

Поменять местами 2 половины строки // С++ - C++
Всем привет. Visual C++. Задание: На входе строка. Необходимо разделить её на 2 равные части, и поменять их местами. Например...

Поменять местами левую и правую половины матрицы - C++
Помогите с матрицей плс Matrix56. Дана матрица размера M × N (N — четное число). Поменять местами левую и правую половины матрицы.

5
ISergey
Maniac
Эксперт С++
1407 / 918 / 57
Регистрация: 02.01.2009
Сообщений: 2,743
Записей в блоге: 1
17.05.2010, 09:34 #2
Это
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
#include <iostream>
using namespace std;
 
 
int func_(int a){
    __asm
    {
        mov eax, a
        bswap eax
        mov a, eax
    }
 
    return a;
}
 
int main(){
    cout << func_( 1 ) << endl
         << func_( 0 ) << endl
         << func_(-1 ) << endl;
 
    int a = func_(1);
    cout << func_(a) << endl;
    return 0;
}
0
Kastaneda
Jesus loves me
Эксперт С++
4756 / 2960 / 243
Регистрация: 12.12.2009
Сообщений: 7,517
Записей в блоге: 2
Завершенные тесты: 1
17.05.2010, 11:07 #3
А число какого размера? Просто можно проблему через union решить.

Добавлено через 1 час 25 минут
Например :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main (){
    union {
        int i;
        short int a[2];
    };
    cin>>hex>>i;
    short int tmp=a[0];
    a[0]=a[1];
    a[1]=tmp;
    cout<<hex<<i;    
    system ("pause");
    return 0;
}
Меняет местами старшую и младшую половины, HEX на вводе и выводе используется просто для наглядности. Например если ввести 12345678, то будет выведено 56781234. Меняя типы переменных в union, можно менять размерность числа.
0
Maxim Prishchepa
Эксперт С++
1924 / 1036 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
17.05.2010, 11:17 #4
C++
1
2
3
4
int change(int number, int size)
{
  return (number>>size/2)|(number<<size/2);
}
0
Kastaneda
Jesus loves me
Эксперт С++
4756 / 2960 / 243
Регистрация: 12.12.2009
Сообщений: 7,517
Записей в блоге: 2
Завершенные тесты: 1
17.05.2010, 11:50 #5
Да, красиво! После ASM'a ни как к С не могу привыкнуть, все меня на сложности тянет
0
Gnum
0 / 0 / 0
Регистрация: 17.08.2016
17.05.2010, 13:44 #6
Число может быть любое от 1. до бесконечности

a^=0xzzzz (zzzz) - это число для байтов

пример

main()
{
unsigned a,m,i;
scanf("%x",&a);
for (i=1;i<sizeof a; i++);
m=(m<<8) |0x55; (для 1 байта)
a^=m;
printf.......
}



Вот такое решение примерно должно быть только для этой задачи
0
17.05.2010, 13:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2010, 13:44
Привет! Вот еще темы с ответами:

Поменять местами первую и вторую половины массива - C++
Дан массив а, состоящий из 10 элементов. Поменять местами первую и вторую его половины

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

Поменять местами правую и левую половины матницы - C++
1. Сформировать квадратную матрицу порядка n × n по образцу вашего варианта задания. Размерность задать в виде именованной константы....

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


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

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

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