Перевод char в char[]

O'NeiLL
Offline
Зарегистрирован: 13.08.2014

Привет есть число записаное в переменую типа char. Мне нужно считать старшие 4 бита этого числа. Как это можно сделать? P.S. главное скорость. Спасибо.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Сдвиг вправо на 4 и в числе останутся как раз 4 бита - быстрее некуда.

arduinec
Offline
Зарегистрирован: 01.09.2015

Если нужно, чтобы старшие 4 бита остались в старшем разряде, то логически сложить с 0xF0

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

arduinec пишет:

Если нужно, чтобы старшие 4 бита остались в старшем разряде, то логически сложить с 0xF0

Правильно. Или сдвинуть вправо, а затем обратно влево :))))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Для скорости использовать именно & 0xF0, в конечном итоге эта команда будет в 7 раз короче чем восемь сдвигов :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Можно предложить ещё 100500 решений, только ТС это не нужно: спросил и исчез.

И ещё, а каким боком тут char[]? Кто-нибудь понял?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Как обычно, ему это нужно для отображения. Вместо описания реальной задачи, ставится частичная задача, которая на взгляд ТС является решением.
Разумеется это мои предположения, а потому скушно фантазировать.