区位十进制格式的区部分到底是什么用意?

发布于 2022-08-19 02:33:47 字数 59 浏览 35 评论 9

区位十进制格式的区部分到底是什么用意?区位部分的值是怎么规定的呢?
区部分是在每个字节的高四位还是低四位?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

失与倦" 2022-08-19 15:38:04

回复 8# ux400

    你好,请问下400对于小数点的标识是怎么样的呢。从你的数据中,可以看到
8P 0类型:123 在内存或者表里16进制值为:00 00 00 12 3F
8P 2类型:1.23 在内存或者表里16进制值为:00 00 00 12 3F
这两者是一样的,无法区分小数点在哪。当然数据我验证过是对的。

   另外能解释下数据末尾F和D的意思吗。应该是和正负有关吧?

你对谁都笑 2022-08-19 15:32:07

原帖由 tianya0229 于 2008-12-19 09:35 发表

我这次定义了8S,0     8P,0的两个数值类型的变量,给他们传值后看不出有什么不一样的地方.
在实际应用上,一般都用压缩的多.区位的有什么方式测试下吗?怎么定义来看效果.

晕,点错了,真是对不起

浮华 2022-08-19 15:31:24

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
自己看看结果吧

抽个烟儿 2022-08-19 15:27:17

原帖由 roden 于 2008-12-17 12:34 发表
一个字节(BYTE)是8位(BIT).
而数字最大是9,只要后面4BIT用1001(2进制)就可以表示了,前面的四位就浪费了,
所以就出现了压缩型数字.
对于非压缩型数字(原文应该是ZONE,不同的地方翻译也不一样),前面的4个BIT是 ...

我这次定义了8S,0     8P,0的两个数值类型的变量,给他们传值后看不出有什么不一样的地方.
在实际应用上,一般都用压缩的多.区位的有什么方式测试下吗?怎么定义来看效果.

惯饮孤独 2022-08-19 15:22:53

跟汉字没关系,现在就只是想知道数字的,区位到底是怎么规定的?

七禾 2022-08-19 15:03:47

不知道你说的与'汉字用区位码表示'有没有关系?

诺曦 2022-08-19 13:12:35

但是我查资料发现4位区部分放的并不是1111(十六进制的F),区部分会不会跟区位十进制的符号位有关系呢?

唱一曲作罢 2022-08-19 09:15:52

一个字节(BYTE)是8位(BIT).
而数字最大是9,只要后面4BIT用1001(2进制)就可以表示了,前面的四位就浪费了,
所以就出现了压缩型数字.
对于非压缩型数字(原文应该是ZONE,不同的地方翻译也不一样),前面的4个BIT是用'1'填充的,
也就是十六进制里的F,所以如果数字是0的话,存放的就是11110000(2进制)/F0十六进制,
其他类推.

悸初 2022-08-19 08:05:07

用ULTRAEDIT 看看

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文