![]() |
|
Модераторы: bsa |
![]()
|
|
| Aizek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.11.2006 Репутация: нет Всего: нет |
Помогите перевести u_int16 просто в int. Можно это сделать при выводе прописав перед переменной %d?
Больно не бейте, в си не разбираюсь совсем) |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
u_int16 y;
int x; x=(int)y; |
|||
|
||||
| Aizek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.11.2006 Репутация: нет Всего: нет |
Спасибо попробуем)
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
|
|||
|
||||
| Aizek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.11.2006 Репутация: нет Всего: нет |
Первый вариант не работает. Второй это обратный перевод.
|
|||
|
||||
| 586 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 8 Всего: 146 |
Это сообщение отредактировал(а) 586 - 9.3.2009, 00:23 |
||||
|
|||||
| Albor |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Отрицательное число типа int хранится в памяти в дополнительном коде, то есть инвертируются все разряды и прибавляется 1. Если старший разряд беззнакового числа считать за знак при преобразовании, то получается следующее:
А правильно будет, наверное так:
Это сообщение отредактировал(а) Albor - 9.3.2009, 08:28 |
||||
|
|||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Почему он не работает? Какой ты результат получить хочешь? Если тебе нужно из 65535 получить -1, то см. вариант Albor. Если тебе нужно получить 65535, то GoldFinch сказал именно твой вариант. Ты только y проинициализировать не забудь. В принципе, тебе достаточно написать только:
|
||||
|
|||||
| Aizek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.11.2006 Репутация: нет Всего: нет |
Извиняюсь) Все работает, просто в одном месте как то проскакивало много пакетов, хотя должен был обрабатываться только один. А так как я плохо разбираюсь в Си да и трудно это сделать когда пишешь в блокноте грешил на преобразование типов. Всем спасибо
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |