Вверх ↑
Этот топик читают: Гость
Ответов: 194
Рейтинг: 2
#46: 2018-11-20 07:26:25 ЛС | профиль | цитата
sla8a, Я измучился, но не понял как получить ---460---, ---213---
помоги пожалуйста. Напиши цифры с моего примера: hex 834c, 8155
карма: 0

0
Ответов: 2200
Рейтинг: 673
#47: 2018-11-20 14:15:53 ЛС | профиль | цитата
lisnic, надеюсь вы понимаете шестнадцатеричную (hex) и двоичную (bin) систему счисления.

1. Первый байт = 83(hex)- 1000 0011(bin) старший бит (самый левый) = 1 указывает на то что придется "соединять" эти данные со вторым байтом. Если старший бит = 0, то используется только один байт. Максимальное число 7F(hex) - 0111 1111(bin) - 127(dec).

2. Второй байт = 4С(hex) - 0100 1100(bin).

3. Удаляем старшие биты у обоих чисел. Получаем по семь бит в каждом числе: 000 0011(bin) = 3(dec) и 100 1100(bin) = 76(dec).

4. Первый байт умножаем на 128 и прибавляем второй байт: 3 * 128 + 76 = 460.

Схема для наглядности

Add(MainForm,2953706,133,147)
{
Width=492
Height=234
Position=1
}
Add(Edit,7499139,224,147)
{
Left=190
Top=60
Text="83"
}
Add(Edit,11502915,441,147)
{
Left=245
Top=60
Text="4C"
}
Add(Delete,8877478,308,203)
{
Count=1
link(onDelete,13551931:doConvert,[])
}
Add(Convertor,14018347,224,203)
{
Mode=5
link(onResult,8016634:doConvert,[])
link(Data,7499139:Text,[])
}
Add(Convertor,8016634,266,203)
{
Mode=8
Digits=8
link(onResult,8877478:doDelete,[])
AddHint(16,-31,21,13,Digits)
}
Add(Delete,13124362,525,203)
{
Count=1
link(onDelete,3177105:doConvert,[])
}
Add(Convertor,12266604,441,203)
{
Mode=5
link(onResult,11151547:doConvert,[])
link(Data,11502915:Text,[])
}
Add(Convertor,11151547,483,203)
{
Mode=8
Digits=8
link(onResult,13124362:doDelete,[])
AddHint(17,-32,21,13,Digits)
}
Add(Convertor,13551931,350,203)
{
Mode=7
link(onResult,14420634:doValue,[])
}
Add(Button,13384317,133,203)
{
Left=185
Top=125
link(onClick,14018347:doConvert,[])
}
Add(Memory,14420634,399,203)
{
link(onData,12266604:doConvert,[])
}
Add(MathParse,10428309,609,203)
{
MathStr="%1 * 128 + %2"
link(onResult,11234384:doText,[])
link(X1,14420634:Value,[(615,191)(707,191)(707,254)(405,254)])
AddHint(2,-53,83,13,MathStr)
}
Add(Edit,11234384,658,203)
{
Left=250
Top=125
Text=""
}
Add(Convertor,3177105,567,203)
{
Mode=7
link(onResult,10428309:doCalc,[])
}

Редактировалось 2 раз(а), последний 2018-11-20 14:20:57
карма: 11

0
Ответов: 194
Рейтинг: 2
#48: 2018-11-20 19:33:10 ЛС | профиль | цитата
Даже схему написал! Спасибо! Вот теперь тема закрыта!
карма: 0

0
48
Сообщение
...
Прикрепленные файлы
(файлы не залиты)