2013-05-08 2 views
1

У меня есть небольшая проблема, пытаясь объединить 4 цифры вместе, чтобы дать мне правильное десятичное значение. Сначала позвольте мне начать с моего кода.Переход от Hex To Dec с помощью PIC18?

long firsttwo, secondtwo, combined; 
firsttwo = 0x0C; 
secondtwo = 0x6C; 

десятичное значение 0C: 12

десятичное значение 6C: 108

Но Десятичное значение всех 0C6C: 3180

Теперь, как я получаю все цифры в одну переменную, чтобы иметь возможность конвертировать ее в десятичную? Потому что, если я просто конвертирую firsttwo сам по себе, то secondtwo сам по себе я не получаю то же окончательное итоговое значение. Благодаря!

+1

? '12 * 256 + 108 = 3180', выглядит правильно для меня. В чем проблема? –

+0

Я думаю, что он неправильно ожидает, что '0C6C' будет' 12108' или что-то в этом роде. – Meoiswa

+0

Каков ваш ожидаемый результат? –

ответ

5

Вы должны переместить наиболее значимые байты при объединении:

combined = (firsttwo << 8) | secondtwo; 

это устанавливает combined в 0x0c6c.

Смежные вопросы