Задать вопрос
mr-alexey
@mr-alexey

Сделать единицами четыре старших бита Си?

С клавиатуры вводится шестнадцатеричное число , надо сделать равными единицам 4 старших бита этого числа. как это сделать? Заранее благодарен
  • Вопрос задан
  • 300 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F
num |= 0xF << (sizeof(num) * 8 - 4);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
С помощью побитового ИЛИ:
если переменная x - char, то
x = x | 0xF0;
Ответ написан
@res2001
Developer, ex-admin
Почитайте про битовые операции.

пусть x - ваше число, в общем случае выражение установки старших 4 бит в единицу будет таким:
x | (0xf << (sizeof(x)*8-4) );

Выражение (0xf << (sizeof(x)*8-4) ) можно заменить на константу, которая зависит от разрядности представления числа х. Например для 32 битного int константа будет 0xf0000000
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
АО НПП «АМЭ» Санкт-Петербург
До 250 000 ₽
Uniscan Research Новосибирск
от 140 000 до 200 000 ₽
Базис-Центр Коломна
от 70 000 до 500 000 ₽