IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

如何计算COMP变量使用的空间


IBM大型机论坛 -> COBOL程式设计
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
阿米特·马纳斯·杜比
目前被禁止

新的用户


已加入:2006年12月15日
帖子:22
地点:孟买

发布发表:2006年12月23日星期六9:06 pm
引用回复

你好

有人可以告诉我如何计算COBOL中COMP变量使用的空间吗?

例如S9(8)COMP-占用4个今天双色球开奖结果...有没有一种可以计算出来的方式??另外,有符号和无符号数字变量使用的今天双色球开奖结果数之间是否存在差异。

谢谢
阿米特
回到顶部
查看用户资料 发送私信
威廉·汤普森

全球主持人


已加入:2006年11月18日
帖子:3156
所在地:亚利桑那州图森

发布发表:2006年12月23日星期六9:19 pm
引用回复

阿米特·马纳斯·杜贝写道:
有人可以告诉我如何计算COBOL中COMP变量使用的空间吗?例如S9(8)COMP-占用4个今天双色球开奖结果...有没有一种可以计算出来的方式??

Comp是二进制的,而执行二进制算术的汇编程序操作码是寄存器指令。注册指令处理全字或半字。寄存器本身就是完整的单词。全字长4个今天双色球开奖结果。
引用:
另外,有符号和无符号数字变量使用的今天双色球开奖结果数之间是否存在差异。

在二进制(comp)字段中,仅高一位表示该符号,不需要额外的长度。
在压缩(comp3)字段中,后半今天双色球开奖结果表示符号,始终在该符号处,不需要额外的长度。
回到顶部
查看用户资料 发送私信
阿米特·马纳斯·杜比
目前被禁止

新的用户


已加入:2006年12月15日
帖子:22
地点:孟买

发布发表:2006年12月23日星期六9:34 pm
引用回复

我看了手册....据我所知,S9(4)COMP-最大值可以为9999-转换为Binary时,此值为10011100001111 +1位符号= 15位.....这将需要2个今天双色球开奖结果= 16位........

我的理解正确吗?
回到顶部
查看用户资料 发送私信
威廉·汤普森

全球主持人


已加入:2006年11月18日
帖子:3156
所在地:亚利桑那州图森

发布发表:2006年12月23日星期六9:44 pm
引用回复

阿米特·马纳斯·杜贝写道:
我看了手册....据我所知,S9(4)COMP-最大值可以为9999-转换为Binary时,此值为10011100001111 +1位符号= 15位.....这将需要2个今天双色球开奖结果= 16位........
我的理解正确吗?
有点...某些编译器(或LE)会强制最大数不大于指定的位数-S9(4)表示9999为最大。但是如果没有该设置,则可以使用32767(7FFF)。
回到顶部
查看用户资料 发送私信
阿米特·马纳斯·杜比
目前被禁止

新的用户


已加入:2006年12月15日
帖子:22
地点:孟买

发布发表:2006年12月23日星期六10:27 pm
引用回复

请解释更多...您的意思是说存储也可以用十六进制编码...好吧....为什么不FFFF?是由于签名的东西-32767-0-+ 32767吗?

请详细!
回到顶部
查看用户资料 发送私信
威廉·汤普森

全球主持人


已加入:2006年11月18日
帖子:3156
所在地:亚利桑那州图森

发布发表:2006年12月23日星期六11:03 pm
引用回复

阿米特·马纳斯·杜贝写道:
请解释更多...您的意思是说存储也可以用十六进制编码...好吧....为什么不FFFF?是由于签名的东西-32767-0-+ 32767吗?

请详细!
实际上是-32768(FFFF)+32767(7FFF)-请记住高位是符号。
comp-val pic s9(4)comp。
hex-val重新定义了comp-val pic x(4)。
将x'1000'移至十六进制值。
显示补偿值
码:
???????
回到顶部
查看用户资料 发送私信
阿米特·马纳斯·杜比
目前被禁止

新的用户


已加入:2006年12月15日
帖子:22
地点:孟买

发布发表:2006年12月23日星期六11:25 pm
引用回复

非常感谢汤姆...

我现在很清楚...只是想知道-您如何在这些帖子上回复得如此之快?除非你现在沉迷于此! icon_biggrin.gif
回到顶部
查看用户资料 发送私信
威廉·汤普森

全球主持人


已加入:2006年11月18日
帖子:3156
所在地:亚利桑那州图森

发布发表:2006年12月23日星期六11:27 pm
引用回复

我不太快... icon_lol.gif
回到顶部
查看用户资料 发送私信
sandip_mainframe
警告:2

新的用户


已加入:2006年9月20日
帖子:63
地点:浦那

发布发表:2006年12月26日,星期二,上午11:51
引用回复

你好
用法comp用于纯二进制格式存储的数值。

PIC S9(1)至PIC S9(4)需要2个今天双色球开奖结果=半字= 16位
PIC S(5)至PIC S9(9)需要4个今天双色球开奖结果=全字= 32位
PIC S9(10)至PIC S9(19)需要8个今天双色球开奖结果=双字= 64位。

SANDIP WALSINGE。
回到顶部
查看用户资料 发送私信
塞尔瓦玛尼

新的用户


已加入:2006年12月19日
帖子:21
地点:加利福尼亚

发布发表:2006年12月27日,星期三,上​​午4:21
引用回复

桑迪普

我记得1个今天双色球开奖结果= 4位。如果这是正确的,则需要重新计算。

我对么?
回到顶部
查看用户资料 发送私信
威廉·汤普森

全球主持人


已加入:2006年11月18日
帖子:3156
所在地:亚利桑那州图森

发布发表:2006年12月27日,星期三,上​​午4:31
引用回复

塞尔瓦玛尼写道:
我记得1个今天双色球开奖结果= 4位。
不,一个今天双色球开奖结果为8位
引用:
我对么?
没有 icon_smile.gif
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2006年12月27日,星期三,上​​午4:31
引用回复

你好,

1个今天双色球开奖结果= 8位。 。 。

例如,字母A由这些位组成
1100 0001,读为C1。数字9是1111 0101(F9)。
回到顶部
查看用户资料 发送私信
UmeySan

活跃成员


已加入:2006年8月22日
职位:771
地点:德国

发布发表:2006年12月27日,星期三,下午3:20
引用回复

嗨!

回到主要问题。正如Sandip所写的那样:

PIC 9 to 9(4) -> 2 Bytes
PIC 9(5) to 9(9) -> 4 Bytes
PIC 9(10) to 9(18) -> 8 Bytes

使用二进制文件时,您只有半今天双色球开奖结果,全今天双色球开奖结果和双今天双色球开奖结果。

@Sandip:S9(19)???你真的很自信吗???


只是一点提示。只需少量编程即可编码所需字段。
类似于PIC 9(01)comp / PIC 9(02)comp /等等。
编译程序。然后看看清单。

图S9(9)COMP。 BLW = 00000 + F45,0000035 4C
因此,在这里您可以看到S9(9)驻留在四个今天双色球开奖结果的字段中。只需4C。

此致Umeysan
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
没有新帖 用时间戳计算 PL / I和组装商 19
没有新帖 DB2表空间空间限制 DB2 3
没有新帖 无法显示补偿变量 COBOL程式设计 4
没有新帖 比较两个字符变量Head ... 清单和REXX 3
没有新帖 将9(07)comp-3数据写入输出文件 DFSORT / ICETOOL 4
搜索我们的论坛:

回到顶部