![]() |
|
![]() ![]() ![]() |
|
Ink82 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 19.6.2007 Репутация: нет Всего: нет |
ПОМОГИТЕ ЧТО ПРОИСХОДИТ С ЧИСЛОМ. КАК HEX ПЕРЕВОДИТСЯ В DEC
Передаются 4 байта, которые отвечают за некое число в десятичном виде XX XX XX XX выяснил, что: 00 00 00 01 h = 3.333.333 или 32.DC.D5 00 00 01 00 h = 13.020 или 32.DC 00 01 00 00 h = 50 или 32h 01 00 00 00 h= 0 при этом если 1ый байт > 0, т.е. все остальное всегда 0. далее составил такую табличку, в которой происходит увеличение одно байта, при этом другие = 0. dec 2ой байт 3ий байт 4ый байт 1 50 13020 3333333 2 25 6510 1666666 3 16 4340 1111111 4 12 3255 833333 5 10 2604 666666 6 8 2170 555555 7 7 1860 476190 8 6 1627 416666 9 5 1446 370370 10 5 1302 333333 11 4 1183 303030 12 4 1085 277777 13 3 1001 256410 14 3 930 238095 15 3 868 222222 16 3 813 208333 17 2 765 196078 18 2 723 185185 19 2 685 175438 20 2 651 166666 из которой видно, что вычисление последующего числа происходит путем деления. т.е. 00 09 00 00 выдает число 1446; (13020 / 9) и отбрасываем часть после запятой 00 00 11 00 выдает число 303030; (3333333 / 11) и отбрасываем часть после запятой НО. если начать совмещать разряды то получается немного другая картина. dec 3ий 4ый 1 1 12970 1 2 12919 1 3 12870 1 4 12820 1 5 12771 1 6 12722 1 7 12674 1 8 12626 1 9 12578 1 A 12531 1 10 12254 1 20 11574 1 40 10416 1 80 8680 1 FF 6523 dec 2ой 3ий 1 1 50 1 2 50 1 3 50 1 4 50 1 5 49 1 6 49 1 7 49 1 8 49 1 9 49 1 A 48 1 10 47 1 20 45 1 40 40 1 80 33 1 FF 25 2 1 25 2,3,4 байт... 01 09 FF - 48 02 09 FF - 24 ![]() Это сообщение отредактировал(а) Ink82 - 14.12.2011, 16:59 |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
Да по-моему все просто
uc - это unsigned char Проверка: http://liveworkspace.org/code/857b143c02dd...474390d09fda47e
все сходится... нет? |
||||
|
|||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
из PM от Ink82,
Ink82, отвечу здесь, так как PM я могу не заметить. Попробую объяснить максимально популярно, возьмем вот эту строчку:
![]() (легче 20 раз сделать, чем 1 раз сказать) |
|||
|
||||
Ink82 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 19.6.2007 Репутация: нет Всего: нет |
то что надо делить я понел, я не понимал как делить если в других байтах тоже есть числа. т.е. я вместо того чтобы просто взять все число в hex, пытался писать остальные байты через запятую и все такое, т.е. ушел совсем в другую степь, заработался ![]() а ща через калькулятор поделил и все получилось! ![]() СПАСИБО! ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |