mr-alexey
@mr-alexey

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

С клавиатуры вводится шестнадцатеричное число , надо сделать равными единицам 4 старших бита этого числа. как это сделать? Заранее благодарен
  • Вопрос задан
  • 196 просмотров
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы