body, table{font-family: 微软雅黑}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

FORTH 堆栈有两个字节  宽度16位   能表示的无符号数的范围是 0~65535 用符号 “u” 表示。
表示有符号数 -32678 ~ 32767 用字母“n”表示。这就是单字长数范围。

算术移位
2*  (n -- n*2) 算术左移  比 2 * 效率高
2/  (n -- n/2) 算术右移  比 2 / 效率高

ASCII 码表  
空格32        !33         $36         .46           /47         * 42          -45         :58     

双字长数
32位
FORTH 中“字”表示一个被定义的命令。一个16位的二进制数据称为一个“单词”(cell)。一个双字长数需要两个单字单元。
.   数据含有这个词,NUMBER 会把他作为一个信号识别;表示该数应该转换成双字长数,然后将该数压入堆栈中的两个连续的“单元”,高阶在栈顶,

FORTH 中 .   是把栈顶值作为带符号数显示 

数基
FORTH 系统中默认的是十进制,但是可以输入命令转换
HEX   OCTAL   DECIMAL  执行这些词会改变数基

数字格式化
<#     #>        指明数字转换过程的开始和结束。#S  表示把栈顶值转换成  ASCII 码字符。TYPE  在终端打印出表示该数的字符。HOLD 取出数字所表示的 ASCII 值。
:   .PH#      <#   #   #   #   #  45   HOLD   #S   #>   TYPE   SPACE   ;     
定义字符表示,把输入的数按照我们定义的格式输出,数字格式化定义所转换的数位次序与将要打印的数位次序相反,# # # # 表示的是输入数据的最后四位,不足就补 0 ;然后输出 ASCII 码代表的“-” #S 表示剩下的数据。知道有几位数据也可以用 # 来表示;
:   DATE      <#   #   #   47   HOLD   #   #   47   HOLD   #S   #>   TYPE   SPACE   ;         
 //这个是把 #S 改成 # # ;

//因为时间的分秒倒数第二位的最大值时5,倒数第一 ‘鹅鹅鹅鹅鹅鹅位的最大值是9;所以在定义中,:00 先把最后一位按十进制输出然后倒数第二位按六进制输出。4500.  十进制输出最右边一位值0,剩下450,转六进制是2030,输出一位0作为倒数第二位;剩下的203进行第二个 :00 操作,先转十进制75,输出一位5,剩下的7转六进制11,输出1。最终剩下一个1直接输出。
!  将16位的n存入地址addr。定义不要也可以

数字格式化——带符号数和单字长数
定义一个显示美元格式的词
:   .$   <#   #   #   46   HOLD   #S   36   HOLD   #>   TYPE   SPACE ;    
//如果要格式化表示单字长度的数据,但是<# #>只能表示双字节长度的数据,可以在<# 前面加上0,表示高阶为0 的双字数据。

双字长运算符
D 开头的字只能操作双字,但是以 2 开头的在既可以操作单字也可以操作双字 

混合字长运算符
M*    (n1  n2  --  d  )     混合量乘,乘积为双字长数。
M/MOD    (d  n  --  rem  quot)     混合量除,带余数。
UM*    (u1  u2  --  ud)     无符号混合乘。
UM/MOD    (ud1  u  --  rem  quot)     无符号混合除。
MU/MOD   (ud  u  --  ud  u)    
U<    (u1  u2  --  f)   留下两个16位数的无符号“小于”比较的布尔值。
U>    (u1  u2  --  f)   留下两个16位数的无符号“大于”比较的布尔值。

一些术语
直接量(Literal):FORTH 中指的是出现在定义内部的数。
掩码(Mask):一个能用来“叠加”在另一个值上,以掩蔽或揭示我们感兴趣的某些位的值。
数字格式化(Number formatting):通常按诸如 3/13/81 或 $47.93 这样一些特定格式打印一个数的过程。

//循环找到无符号数的最大值;从0开始循环,每次+1后和0比较大小,如果小于0就意味着已超出单字长的限制。结束循环,在-1就得到单子长的极限值。


..    连续两点,表示一个双字长0
*********
 //OVER 为 IF 提供了正被转换数值的低字长单元。这个单元只有当该数值完全转换完毕是才为0。

PC/FORTH 数字类型的更多相关文章

  1. Java里面,反射父类里面数字类型字段,怎么set值

    Java里面,反射父类里面数字类型字段,怎么set值,我的做法是这样: /** * TODO 直接设置对象属性值, 忽略private/protected 修饰符, 也不经过setter * @aut ...

  2. javascript类型系统——Number数字类型

    × 目录 [1]定义 [2]整数 [3]浮点数[4]科学记数[5]数值精度[6]数值范围[7]特殊数值[8]转成数值[9]实例方法 前面的话 javascript只有一个数字类型,它在内部被表示为64 ...

  3. asp检测数字类型函数

    '**************************************************'函数ID:0014[检测ID是否为数字类型]'函数名:JCID'作 用:检测ID是否为数字类型' ...

  4. Javascript如何判断一个变量是数字类型?

    isNaN()不能判断一个变量是否为数字类型,isNaN(123)值为false,isNaN('123')值也为false.isNaN() 的实际作用跟它的名字isNaN并不一致,isNaN(NaN) ...

  5. Swift数字类型之间的转换

    Swift数字类型之间的转换Swift是一种安全的语言,对于类型的检查非常严格,不同类型之间不能随便转换.一.整型之间的转换在C和Objective-C等其他语言中,整型之间有两种转换方法:从小范围数 ...

  6. Python的数字类型及其技巧

    Python中的数字类型 int float fractions.Fraction decimal.Decimal 数字的舍与入 int(f):舍去小数部分,只保留整数部分,所以int(-3.8)的结 ...

  7. 是否以某字符串结尾 是否以某字符串开始 是否是整数 裁减字符串空格 是否是浮点数 是否所有字符为数字类型 是否为空 是否是EMAIL 是否是电话号码 身份证号码验证-支持新的带x身份证 日期验证

    /* 1.是否以某字符串结尾 endsWith(theStr,endStr) @param theStr:要判断的字符串 @param endStr:以此字符串结尾 @return boolean; ...

  8. MySQL数字类型中的三种常用种类

    数字类型 MySQL数字类型按照我的分类方法分为三类:整数类.小数类和数字类. MySQL数字类型之一我所谓的“数字类” 就是指 DECIMAL 和 NUMERIC,它们是同一种类型.它严格的说不是一 ...

  9. Python新手学习基础之数据类型——数字类型

    创建一组数字 Python 的有以下几种内置数字类型: int,整型,比如:1.-2.598: float,浮点型,比如:0.0.-3.5.18.55: bool,布尔型,即True和False两个关 ...

随机推荐

  1. webpack踩坑之路 (2)——图片的路径与打包

    刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我们就来分析下在webpack项目中图片的应用场景. ...

  2. 不会 tsconfig | tslint 常遇到的问题

    1. require('xx-xx') 不能用时 https://stackoverflow.com/questions/31173738/typescript-getting-error-ts230 ...

  3. VNPY回测流程

    又是好久没更新了,2月这一个月,工作上也忙,正好也是过年.加上前一段时间,一直在爬取某眼查的数据. 对VNPY的使用时间就减少了,不过最近还是完成了vnpy回测结构的思维导图.如下: 值得注意的是,v ...

  4. python3 语法小结

    (1) 关键字 # -*- coding: utf-8 -*- #!/usr/bin/python3 """ 1.关键字(保留字) ['False', 'None', ' ...

  5. 雷林鹏分享:C# 数组(Array)

    C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合.数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合. 声明数组变量并不是声明 number0.number1... ...

  6. OnSen UI结合AngularJs打造”美团"APP"订单”页面 --Hybrid App

    1.页面效果图: 演示链接地址:http://www.nxl123.cn/bokeyuan/meiTuanDemo_order/ 2.核心代码 order.html: <ons-page id= ...

  7. P4426 [HNOI/AHOI2018]毒瘤

    挺不错的一个题. 题意即为求一个图的独立集方案数. 如果原图是一棵树,可以直接大力f[x][0/1]来dp. 由于非树边很少,考虑2^11容斥,强制某些点必选,然后再O(n)dp,这样应该过不了. 发 ...

  8. Android实现选择题答题(包括单选、多选和答题卡)

    在线答题demo,具体代码是一年多前完成的,比较简单,不再贴出,请参见Github. 主要功能: 单选:点击选项直接进入下一题.多选:选择多个选项,向右滑动进入下一题.答题卡:点击题号重新进入答题界面 ...

  9. Pascal's Triangle 2(leetcode java)

    问题描述: Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return ...

  10. stl常用的查找算法

    #include<iostream> using namespace std; #include"vector" #include"algorithm&quo ...