ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
12172 Топик полностью
Bill (28.07.2004 10:13, просмотров: 1) ответил SM на Не в слово (16-битное), а
Я понял, что значащее слово 16-разрядное, а старшее слово это только расширение знака. Во многих случаях это так и есть, поскольку на 32-разрядных машинах для типа int используется весь регистр целиком, хотя было бв достаточно и половины. Если мои предположения неверны, и данные+знак не укладываются в 16-разрядную сетку, то тогда надо принимать все 4-байта и складывать 32-разрядное слово из четырех байт. Но и в этом случае речь идет просто об объединении нескольких байт в одно слово безо всякой их интерпретации. Можно написать long lll; lll = ((unsigned long)high_byte << 24) | ((unsigned long)mid2_byte<<16) | ((unsigned)mid1_byte<<8) | low_byte;