Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 10.10.2010, 19:31 |
Ну так ССЗБ. чиво ругаесси ? )) |
|
BRE | Дата 10.10.2010, 19:23 |
А почему с uchar нормально, а с char нет? смотри самый первый пост этой темы. Вот почему Ну так ССЗБ. Цитата А так есть же и QVector<uchar>. |
|
Алексей1153 | Дата 10.10.2010, 19:21 |
А почему с uchar нормально, а с char нет? смотри самый первый пост этой темы. Вот почему |
|
BRE | Дата 10.10.2010, 19:18 |
вот это я бы написал сразу нормально std::vector<uchar> arr; А почему с uchar нормально, а с char нет? QByteArray в Qt часто используется как инструмент для работы с обычными сишными строками, поэтому и заточен для работы char. А так есть же и QVector<uchar>. |
|
Алексей1153 | Дата 10.10.2010, 19:12 |
да я понимаю, откуда минус берётся: 129 == 0x81 если это char , то при увеличении размерности знак (0x80) тоже расширяется и получается 0xFFFFFF81 , что и есть 4294967169 а всё остальное - это лишь представление мне другое дико - если работаешь с байтом, зачем там char, а не unsigned char. Отсюда и глюки. std::vector<char> arr; вот это я бы написал сразу нормально std::vector<uchar> arr; |
|
BRE | Дата 10.10.2010, 19:07 |
Дело вовсе не в QByteArray и не в STL. Попробуй такой код, эффект будет таким же:
Если преобразовать b к signed, то станет понятно, что число 4294967169 как раз обозначет -127. |
|
Алексей1153 | Дата 10.10.2010, 18:56 |
BRE, да, в отладчике зыркнул, расширяет знак Не могу понять, только, почему. зато явное преобразование к незнаковому char работает unsigned b = (uchar)arr[0]; скорее всего корявая работа оператора [] , который возвращает не просто char , а QByteRef , я уж не стал дальше копать, что он там вертает (скорее всего int) ещё один довод в пользу использования STL |
|
BRE | Дата 10.10.2010, 17:43 |
тоже должно было получиться Не должно. |
|
Алексей1153 | Дата 10.10.2010, 15:48 |
unsigned b = (uint)arr[0]; Не получалось. а почему? тоже должно было получиться |
|
rcdimon | Дата 10.10.2010, 14:05 |
Хм. и правда работает. а я пробовал Не получалось. а почему? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 26.4.2024, 22:36 |