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

В 16-ричном числе выделить маской старший разряд и заменить его предопределенным числом

19.06.2015, 23:49. Просмотров 430. Ответов 5
Метки нет (Все метки)

Как в 16ричном числе выделить маской старший разряд и заменить его предопределенным числом? То есть есть
0x0000c1a5 и число 8, нужно чтобы было 0x000081a5.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2015, 23:49
Ответы с готовыми решениями:

В длинном целом числе поменять местами нулевой разряд с первым разрядом
Здраствуйте! Подскажите пожалуйста. Такая задача: В длинном целом числе...

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

Для целого числа А выделить старший байт и поставить его на место младшего байта. старший байт при этом обнулить.
Помогите пожалуйста, вообще не могу понять как делать следующее...Еще и в...

Найдите максимальный разряд в данном числе и его номер
Разветляющейся стуктура. Дано целое число а. Найдите максимальный разряд в этом...

N-значное число, вывести младший и старший разряд
Составить программу. Дано n-значное число longint. Произвести с ним действия...

5
Ethereal
3411 / 1550 / 200
Регистрация: 17.02.2013
Сообщений: 2,411
19.06.2015, 23:59 #2
Разряд - это один бит. И он может быть только 0 или 1.

Добавлено через 2 минуты
Ты говоришь про тетраду, а не про разряд.
Сначала занули тетраду посредством
x &= 0xFFFF0FFF ;
а потом вставь в нее восьмерку
x |= 0x00008000 ;
0
xfnii
0 / 0 / 0
Регистрация: 19.11.2014
Сообщений: 16
20.06.2015, 00:04  [ТС] #3
Добавлено через 2 минуты
Цитата Сообщение от Ethereal Посмотреть сообщение
Разряд - это один бит. И он может быть только 0 или 1.

Добавлено через 2 минуты
Ты говоришь про тетраду, а не про разряд.
Сначала занули тетраду посредством
x &= 0xFFFF0FFF ;
а потом вставь в нее восьмерку
x |= 0x00008000 ;
Понятно, но как определить позицию 0? Число может быть разных размеров.
0
Ethereal
3411 / 1550 / 200
Регистрация: 17.02.2013
Сообщений: 2,411
20.06.2015, 00:40 #4
Тебе надо заменить именно старшую тетраду заранее неизвестных размеров числа ?

Добавлено через 9 минут
Если так, то
Assembler
1
2
3
4
    sh = sizeof(x) ;     // размер x в байтах
    sh = 8*sh - 4 ;      // сдвиг старшей тетрады у x в битах
    x &= ~(0xF << sh) ;  // занулили старшую тетраду
    x |= 8 << sh ;       // втыкаем в нее восьмерку
0
xfnii
0 / 0 / 0
Регистрация: 19.11.2014
Сообщений: 16
20.06.2015, 00:54  [ТС] #5
Нет, смотри. Есть задач: мы получаем на ввод длинное целое неотрицательное число(unsigned int) нужно в его 16ричном представлении поменять старшую цифру максимальной из цифр числа, а младшую – минимальной. То есть замена младшую цифру легко, а вот как старшую я не знаю.
0
Ethereal
3411 / 1550 / 200
Регистрация: 17.02.2013
Сообщений: 2,411
20.06.2015, 10:47 #6
C
1
2
3
4
5
6
7
    i = 8*sizeof(x) ;
    do {
      i -= 4 ;
      if ((x>>i & 0xF)) break ;
    } while (i) ;
    x &= ~(0xF<<i) ;  // занулили тетраду
    x |= 8<<i ;       // втыкаем в нее восьмерку
0
20.06.2015, 10:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2015, 10:47

Найти максимальную цифру и записать в старший разряд
Дано натуральное трехзначное число. В записи этого числа найти максимальную...

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

Сумма элементов ниже главной диагонали матрицы, старший разряд которых равен X
Задан двумерный массив целых чисел размерности NхN. Найти сумму элементов...


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

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

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