-
- Уж точно не так.
Сначала надо бы buff в беззнаковый превратить. разве что скобочку поставить "как никто не ставил": Var1 = ((unsigned char)(buff[2])) + 4<- тоже не работает - POV(22.02.2013 11:35 - 11:55)- Но вопрос - а как афтор поста интерпретирует отрицательные значения буфера? Какой вообще результат он хочет получить? Знаковое 0xC0 - есть отрицательное и меньше 128. Т.е. с 1 в старших битах. Так шта преобразование в 0xFFC0 корректное. - POV(22.02.2013 11:49 - 11:54)
- вроде как (unsigned int)((unsigned char)(buf[2]+4)) не должно приводиться к signed long, но вот будет ли ((unsigned char)(buf[2]+4)) приводиться к signed int по-любому или не будет - не вкурсе - Vit(22.02.2013 11:57)
- Проверил на стимуляторе в кейле. Ничего не работает - всегда получается 0xFFC0 - и, как я выше написал, это, похоже, корректно. Ибо в кейле char по умолчанию знаковый, а афтар явно не этого хотел... POV(312 знак., 22.02.2013 12:01 - 12:11)
- Гнусный паскализм. char нужно использовать только для символов (алфавита). Для чисел int. И не морочить мозги... - fk0(22.02.2013 12:10)
- Дык их жаба душит: целых 8 лишних битов. Вот и извращаются как могут. - SciFi(22.02.2013 12:38)
- Для жлобов есть int_fast8_t и uint_fast8_t. Для совсем жлобов -- uint8_t. - fk0(22.02.2013 13:47)
- Дык их жаба душит: целых 8 лишних битов. Вот и извращаются как могут. - SciFi(22.02.2013 12:38)
- Гнусный паскализм. char нужно использовать только для символов (алфавита). Для чисел int. И не морочить мозги... - fk0(22.02.2013 12:10)
- Проверил на стимуляторе в кейле. Ничего не работает - всегда получается 0xFFC0 - и, как я выше написал, это, похоже, корректно. Ибо в кейле char по умолчанию знаковый, а афтар явно не этого хотел... POV(312 знак., 22.02.2013 12:01 - 12:11)
- Опппа. Неплохая мысль. После поздравлялок, если буду в состоянии - проверю сей факт. - RedFroggy(22.02.2013 11:56)
- вроде как (unsigned int)((unsigned char)(buf[2]+4)) не должно приводиться к signed long, но вот будет ли ((unsigned char)(buf[2]+4)) приводиться к signed int по-любому или не будет - не вкурсе - Vit(22.02.2013 11:57)
- Но вопрос - а как афтор поста интерпретирует отрицательные значения буфера? Какой вообще результат он хочет получить? Знаковое 0xC0 - есть отрицательное и меньше 128. Т.е. с 1 в старших битах. Так шта преобразование в 0xFFC0 корректное. - POV(22.02.2013 11:49 - 11:54)
- Уж точно не так.