tywsc 发表于 2014-2-14 20:37:10

ASCII码怎么出现正数表示和负数表示呢?

我下载了一款软件“ascii速查7.0”,其中,我用“班”字做尝试,字节分离与(VL-string->list“班")相同,结果为(176 224)。但“ascii速查7.0”,其中,我用“班”字做尝试,正数表示为:45279。   “ascii速查7.0”,其中,我用“班”字做尝试,负数表示为:-20256。请问,各位大师,汉字用“正数表示”和用“负数表示”是什么意思。我怎从没听说过。急,哪位大师能帮我解释一下吗?

ll_j 发表于 2014-2-15 10:38:14

最早的ascii码只有128个字符(十六进制的00~8F),后来扩展到256个(00~FF),vl-string-string-list就是遵循这个规则的。
信息化的发展,256个字符是不够用的,所以后来就使用了多个ascii码表示一个字符,汉字就是以双字节表示的,国内常用的GBK码的“班”是由176和224两个字符表示,十六进制就是B0DF,转换成10进制就是45279。
-20256也是表示45279,这是相对于双字节最大数(FFFF,65535)的二补数,具体你可以百度一下。

tywsc 发表于 2014-2-15 19:55:38

谢您了,我还象明白一点了

ZZXXQQ 发表于 2014-2-16 08:29:28

“班”用无符号整数表示是45279=176*256+223(B0DF)
         用有符号整数表示是-20256。(B0DF最高位是1时表示负数)

ysq101 发表于 2014-2-16 11:07:00

ll_j 发表于 2014-2-15 10:38 static/image/common/back.gif
最早的ascii码只有128个字符(十六进制的00~8F),后来扩展到256个(00~FF),vl-string-string-list就是 ...

高手啊。。。。好像你无所不精啊~~~

tywsc 发表于 2014-2-16 15:52:36

      谢谢楼上各位高手指点,我对十六进制了解不多,大一时学过,现在都还给老师了,看来要编好lisp就要什么都会。 现在没有一个学校叫autolisp语言的,完全是靠自学和各位网络高手无私的帮助。
页: [1]
查看完整版本: ASCII码怎么出现正数表示和负数表示呢?