Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср ноя 21, 2018 14:50

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 17:02 
Не в сети
Аватара пользователя

Зарегистрирован: Пт апр 30, 2010 21:37
Сообщения: 8
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Подскажите пожалуста а за что отвечает слова EKEY, NUMBER?, >NUMBER ?
С уважением ко Всем, Lacoste


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 17:17 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Lacoste писал(а):
Подскажите пожалуста а за что отвечает слова EKEY, NUMBER?, >NUMBER ?
С уважением ко Всем, Lacoste

EKEY - ввод с клавиатуры символа, возращает некий код содержащий в себе признаки нажатия клавиш Ctrl, Alt, Shift и еще признак так называемоего скан-кода клавиши
NUMBER? - преобразует строку определенной длины расположеную по некотрому адресу в число на стеке, формируя признак этого числа - двойной оно размерности или одинарной, или вообще нет числа там при вводе (зависит от системы счисления установленной перменной BASE)
>NUMBER - преобразует строку до первого символа отличного от цифры, оставляя на стеке помимо полученного числа, информацию о непреобразованных символах в строке (адрес и длина).



За это сообщение автора Alexander поблагодарил: Lacoste
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 17:37 
Не в сети
Аватара пользователя

Зарегистрирован: Пт апр 30, 2010 21:37
Сообщения: 8
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Тоесть мы ввели число и определили его с помощью >NUMBER. Но >NUMBER помимо самого числа запоминает адрес и длину. А как отделить само число от адреса и длины?
I am Sorry, за очень глупые вопросы, просто после Basic'а (print, input), и Lua (io.write, io.read) непревычно превыкнуть к стековой системе, но зато очень интересно разобратся в этом удивительном конструкторе :roll:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 17:57 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Lacoste писал(а):
. А как отделить само число от адреса и длины?

если длина оставшейся строки станет 0, то надо отбросит и адрес и тогда на вершине наше число.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 17:59 
Не в сети
Аватара пользователя

Зарегистрирован: Пт апр 30, 2010 21:37
Сообщения: 8
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Спаибо, Alexander, тоесть берем верхнее число из стека :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 18:10 
Не в сети
Аватара пользователя

Зарегистрирован: Вт фев 17, 2009 19:58
Сообщения: 111
Откуда: Барнаул
Благодарил (а): 21 раз.
Поблагодарили: 16 раз.
Alexander писал(а):
Lacoste писал(а):
. А как отделить само число от адреса и длины?

если длина оставшейся строки станет 0, то надо отбросит и адрес и тогда на вершине наше число.

Было бы проще понять о чем речь если бы объяснение сопровождалось стековой нотацией. Насколько я понял из объяснения говорится о следующем.

Нотация >NUMBER:
>NUMBER (" " --> u addr n)
где:
u -- длина необработанной части строки
addr -- адрес необработанной части строки
n -- число, преобразованное из начала строки

Для получения самого числа нужно сделать:
S" 24214bfdbd"
>NUMBER (" " -- u addr n)
DROP (-- addr n)
DROP (-- n)

Я правильно понял?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 18:20 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
не ленимся и читаем про устройство строк в Форте

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 18:22 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
не ) нам надо u ,

>NUMBER - это вообще самый низкий уровень представления информации
чаще NUMBER используют, но он не говрит какое число получили в 1 ячейку размером или 2

ваще так вот
Код:
0 S>D S" 12345" >NUMBER 2DROP

На вершине число в 2 ячейки, что с ним делать операцию D>S или нет - решать программисту


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: вопросы чайника, заход №2
СообщениеДобавлено: Вт май 04, 2010 18:52 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Lacoste писал(а):
Тоесть мы ввели число и определили его с помощью >NUMBER

правильнее сказать распознали. Проблема только в том, что NUMBER возвращает число двойной длины.
число двойной длины - это означает, что на вершины стека лежит два числа, которые образуют одно целое число двойной разрядности.

Lacoste писал(а):
Но >NUMBER помимо самого числа запоминает адрес и длину

нет, >NUMBER на входе получает строку(которая представлена адресом начала и длиной)
и число двойной длины (обычно два нуля), возвращает так же преобразованное число и строку-остаток, длина которой при успешном завершении преобразования равна нулю.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB