Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Олеся11
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 8
#1

Копирование младшей половины байта в старшую половину

10.12.2012, 17:48. Просмотров 1132. Ответов 5
Метки нет (Все метки)

программе задается целое число в шестнадцатеричном представлении из диапазона от OxOO до OxFF.
Программа должна осуществлять копирование младшей половины байта в старшую половину(например, OxAB -> OxBB ) и выводить на экран результат в шестнадцатеричном виде.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 17:48
Ответы с готовыми решениями:

Копирование первой половины введенной строки в другую
Написать программу копирования первой половины введенной строки в другую.

Старший бит старшего байта поменять местами с младшим битом младшего байта
Ребят помогите прогу доработать. Задача такая: В одномерном массиве чисел...

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

Строки верхней половины матрицы поменять местами со строками нижней половины
Дан двумерный массив из четного числа строк. Строки верхней половины массива...

Определение младшей цифры числа
Написать программу на языке Си

5
easybudda
Модератор
Эксперт CЭксперт С++
10051 / 5971 / 1491
Регистрация: 25.07.2009
Сообщений: 11,305
10.12.2012, 18:26 #2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%i", &n) == 1 && n < 0x100 )
        printf("Result: %#02x\n", n & 0xf | ( ( n & 0xf ) << 4 ) );
    
    return 0;
}
Чувство, что перемудрил, но в принципе работает...
1
Олеся11
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 8
10.12.2012, 20:34  [ТС] #3
Спасибо)
а можно чтобы чуть чуть попроще решено было хоть и подлиннее?
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
10.12.2012, 20:52 #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main(void) {
    unsigned n;
    unsigned tetra;
    printf("Number: ");
    scanf("%i", &n);
    tetra=n&0x0f;//младший полубайт
    n=(tetra<<4) //он же на месте старшей тетрады
          |tetra;//+он же на месте младшей тетрады
    printf("Result: %x\n", n);
    return 0;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
10051 / 5971 / 1491
Регистрация: 25.07.2009
Сообщений: 11,305
10.12.2012, 20:53 #5
Цитата Сообщение от Олеся11 Посмотреть сообщение
а можно чтобы чуть чуть попроще решено было хоть и подлиннее?
Ну давайте разобьём задачу на части: после того, как число прочитали и убедились, что оно не выходит за обозначенные границы, нам нужно выделить младший полубайт
C
1
n = n & 0xf; /* всё, что "выше" обнулилось */
а за тем скопировать его в старший
C
1
n = n | ( n << 4 );
Вот собственно и всё. Получилось две строки, но надеюсь, так понятнее...
1
Олеся11
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 8
10.12.2012, 22:16  [ТС] #6
Спасибо)
0
10.12.2012, 22:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 22:16

Вычислить произведение младшей цифры четырехзначного числа
С языком не знаком,а разобраться еще не успел.Буду благодарен ,если напишите...

MC68HC705K1. Запись в старшую тетраду аккумулятора зеркального отображения младшей
Написать программу, записывающую в старшую тетраду аккумулятора зеркальное...

Циклический сдвиг в младшей тетраде байта на n позиций вправо
Циклический сдвиг в младшей тетради байта на n позиций вправо Ребят...


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

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

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