>NUMBER — 문자열 숫자 변환
>NUMBER — 문자열 숫자 변환
>NUMBER(to-number)는 c-addr1 u1이 지정하는 문자열 안의 문자들을 부호 없는 수 ud2로 변환하는 코어 단어예요.
본문
스택 효과
( ud1 c-addr1 u1 -- ud2 c-addr2 u2 )
설명
ud2는 c-addr1 u1이 지정하는 문자열 안의 문자들을 변환한 부호 없는 결과예요. c-addr2 u2는 첫 번째 변환할 수 없는 문자의 주소와 남은 문자 수를 기술해요. 문자열 안의 선행 공백은 버려져요. 문자열이 현재 BASE에서 숫자 구문을 따르면, 문자열은 그 규칙에 따라 화상 숫자 출력 문자열(pictured numeric output string)로 변환돼요. 변환할 수 없는 문자를 만나면 변환을 멈추고, 문자열의 그 부분을 c-addr2 u2로 남겨요.
참조 (See)
- 3.2.1.2 Digit conversion(숫자 변환)
- 3.4 The Forth text interpreter
테스트 (Testing)
T{ 0 0 S" 123" >NUMBER -> 123 S" " S= }T
T{ 0 0 S" -123" >NUMBER -> -123 S" " S= }T
\ FOLLOWING SHOULD FAIL TO CONVERT
T{ 0 0 S" 123X" >NUMBER -> 123 S" X" S= }T