Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2011, 16:00   #1
jellew
Новичок
Джуниор
 
Регистрация: 28.07.2011
Сообщений: 2
По умолчанию Разделение числа на байты

Доброго времени суток,уважаемы программисты!Подскажите пожалуйста,есть ли в языке С функция разделения 2-байтного числа на старшие и младшие байты.Заранее благодарю.
jellew вне форума Ответить с цитированием
Старый 28.07.2011, 16:09   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

нет такой функции. но есть сдвиги и побитовые операции

Код:
uint16_t val; //16 битное число
uint8_t minor = val & 0xFF; // младший
uint8_t major = val >> 8;   // старший
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 28.07.2011, 16:10   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
unsigned char LowByte(unsigned short val)
{
    return (unsigned char)(val&0xFF);
}

unsigned char HighByte(unsigned short val)
{
    return (unsigned char)((val>>8)&0xFF);
}
примерно так.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.07.2011, 16:30   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Еще макрос в <windows.h> есть

Код:
LOBYTE(x);
HIBYTE(x);
LOWORD(x);
HIWORD(x);

Последний раз редактировалось coNsept; 28.07.2011 в 16:32.
coNsept вне форума Ответить с цитированием
Старый 29.07.2011, 02:18   #5
jellew
Новичок
Джуниор
 
Регистрация: 28.07.2011
Сообщений: 2
По умолчанию

Спасибо большое!!Сегодня утром приду на работу,проверю.Сам я программированием не занимаюсь,просто коллеги попросили поискать такую функцию,если она существует.
Программируют микроконтроллер,там компилятор С-шный вроде бы, в сам мк зашиваются хекс файлы.Это принципиально?
jellew вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по Си. Байты, разряды. meta Помощь студентам 2 31.05.2011 12:02
Удалить байты KoBRaAndrey Общие вопросы Delphi 3 22.01.2010 17:53
Байты и биты Karp_13 Общие вопросы Delphi 9 10.11.2009 00:33
Байты в стринги FaTaL Общие вопросы Delphi 9 18.04.2008 15:46