Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Из цифр в числа - еще один вопрос новичка
sandro37 Дата: Вс, 26.02.2012, 11:43  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 21
Репутация: 0   ±
Замечания:   ±
На сайте с 06.02.2012

Статус: Offline

Через serin от терминала получаю в массив 3 цифры 7, 5, 0
Каким образом из них можно получить десятичное число 750 и записать его в переменную?
Или может есть другой способ передачи 3-х значного числа?
ЯНДЕКС Дата: 26.02.2012
ivan_fd Дата: Вс, 26.02.2012, 12:34  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Передавайте сразу то число какое Вам нужно. В вашем случаи, 750 это WORD, передаете сначала один байт потом другой.
TriRozhka Дата: Вс, 26.02.2012, 19:11  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 7
Репутация: 0   ±
Замечания:   ±
На сайте с 06.02.2012

Статус: Offline

Если важно именно из 3 чисел получить 3 значное число, то :

dim RES as word
dim M[3] as byte
...

RES = M[0] * 100
RES = RES + M[1] * 10
RES = RES + M[2]
...

Иначе сделать так как написали вам выше.
sandro37 Дата: Вс, 26.02.2012, 20:56  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 21
Репутация: 0   ±
Замечания:   ±
На сайте с 06.02.2012

Статус: Offline

Как из 3 чисел получить 3 значное число, алгоритм понятен.
Но больше интересует ка передать одним числом.
Пробую вот так, не получается.
Code
Dim VALUE As Word
Dim T As Word

Print $FE, 1, "Hello" ' Очистить экран и вывести “Hello”  
main:
SerIn PORTB.1, T9600, 10, dalshe, [VALUE]
If VALUE > 0 Then
T=VALUE
Print $FE, 1, T
EndIf
dalshe:
.....
ADMIN Дата: Пн, 27.02.2012, 03:46  |                                                                                                                Сообщение # 5
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Нужно создать массив из трех байт и принимать данные как строку:

Dim VALUE[3] As byte
Dim res as word
Dim T As Word

Print $FE, 1, "Hello" ' Очистить экран и вывести “Hello”
main:
SerIn PORTB.1, T9600, 10, dalshe, [Str VALUE]

'После этого преобразовать значение в число:
res = Val(Value, Dec) 'Почитай справку
'А здесь делай с ним что хочешь

If res > 0 Then
T=res
Print $FE, 1, T
EndIf
sandro37 Дата: Пн, 27.02.2012, 10:38  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 21
Репутация: 0   ±
Замечания:   ±
На сайте с 06.02.2012

Статус: Offline

Спасибо, Val - именно этой функции и не хватало.
  • Страница 1 из 1
  • 1
Поиск: