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

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

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