区位十进制格式的区部分到底是什么用意?
区位十进制格式的区部分到底是什么用意?区位部分的值是怎么规定的呢?
区部分是在每个字节的高四位还是低四位?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
区位十进制格式的区部分到底是什么用意?区位部分的值是怎么规定的呢?
区部分是在每个字节的高四位还是低四位?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
回复 8# ux400
你好,请问下400对于小数点的标识是怎么样的呢。从你的数据中,可以看到
8P 0类型:123 在内存或者表里16进制值为:00 00 00 12 3F
8P 2类型:1.23 在内存或者表里16进制值为:00 00 00 12 3F
这两者是一样的,无法区分小数点在哪。当然数据我验证过是对的。
另外能解释下数据末尾F和D的意思吗。应该是和正负有关吧?
晕,点错了,真是对不起
8S 0类型:123 在内存或者表里16进制值为:F0 F0 F0 F0 F0 F1 F2 F3
8P 0类型:123 在内存或者表里16进制值为:00 00 00 12 3F
8S 2类型:1.23 在内存或者表里16进制值为:F0 F0 F0 F0 F0 F1 F2 F3
8P 2类型:1.23 在内存或者表里16进制值为:00 00 00 12 3F
8S 2类型:-1.23 在内存或者表里16进制值为:F0 F0 F0 F0 F0 F1 F2 D3
8P 2类型:-1.23 在内存或者表里16进制值为:00 00 00 12 3D
怎么样?看出规律来没有?
不相信的话,编个 PF 测试一下:例如 AT1 PF:
A R RAT1
A FLD1 8P 0 TEXT('FLD1')
A FLD2 8P 2 TEXT('FLD2')
A FLD3 8S 0 TEXT('FLD3')
A FLD4 8S 2 TEXT('FLD4')
编译到 QTEMP/AT1
然后 STRSQL:
INSERT INTO QTEMP/AT1 VALUES(123, 1.23, 123, 1.23)
INSERT INTO QTEMP/AT1 VALUES(-123, -1.23, -123, -1.23)
SELECT HEX(FLD1), HEX(FLD2), HEX(FLD3), HEX(FLD4) FROM AT1
自己看看结果吧
我这次定义了8S,0 8P,0的两个数值类型的变量,给他们传值后看不出有什么不一样的地方.
在实际应用上,一般都用压缩的多.区位的有什么方式测试下吗?怎么定义来看效果.
跟汉字没关系,现在就只是想知道数字的,区位到底是怎么规定的?
不知道你说的与'汉字用区位码表示'有没有关系?
但是我查资料发现4位区部分放的并不是1111(十六进制的F),区部分会不会跟区位十进制的符号位有关系呢?
一个字节(BYTE)是8位(BIT).
而数字最大是9,只要后面4BIT用1001(2进制)就可以表示了,前面的四位就浪费了,
所以就出现了压缩型数字.
对于非压缩型数字(原文应该是ZONE,不同的地方翻译也不一样),前面的4个BIT是用'1'填充的,
也就是十六进制里的F,所以如果数字是0的话,存放的就是11110000(2进制)/F0十六进制,
其他类推.
用ULTRAEDIT 看看