回复:关于“反码”

未尽

  • 帖子

    878
  • 精华

    6
  • 被关注

    7

论坛等级:侠士

注册时间:2006-04-11

普通 普通 如何晋级?

发布于 2008-04-01 12:43:09

0楼

L #IN_Integer //取一单整形数放入累加器一

ITD //将累加器一中的单整数转换为双整数

DTR//将累加器一中的双整数转换为实数

L #IN_Real//将上面的实数移到累加器2,取一数(实数)放入累加器1

/R//累加器2值除以累加器1值

RND //将上面两个浮点数的商取整,变成整数,并存到累加器1,此时累加器2值为#IN_Real

L L#32767//将上述商存入累加器2,同时将32767存入累加器1

>D //比较两个累加器值大小

JC LIM//如果商值大于32767,则跳转到LIM

INVD //如不大于32767,则将32767取反(-32768)


JC LIM//小于,则跳转到LIM

TAK //交换两个累加器的值

LIM: T #Out_Integer //将累加器1中的值存到#Out_Integer 中。

注意,随着比较的不同,#Out_Integer的值是不同的,第一次成功跳转,,#Out_Integer= 32767,第二次成功跳转,,#Out_Integer=-32768,如果两个条件均不满足,则,#Out_Integer=商(整数)

实际上这段程序的意思就是要确保输出一个在-32768和32767之间的数


楼上的32767反码为-2147450880是错误的!!!!
好好生活,天天向上!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54787条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。