递归火山软件开发平台
标题:
请教一个问题
[打印本页]
作者:
tlshs
时间:
2022-11-16 09:46
标题:
请教一个问题
参考例子写了一个十六进制转十进制的代码,但有点搞不清原理:
来源文本=十六进制文本
循环(,7,n)
字符名=取字符(来源文本,7,n) //4个字节
如果(字符名>='0'&&字符名<='9')
字符值=字符名-'0'
否则(字符名>='a'&&字符名<='f')
字符值=10+字符名-'a'
其中:字符值=字符名-’0’
相当于
字符值=字符名,
字符值=10+字符名-’a’
相当于
字符值=字符名
,但直接用后者就出错,请高手,老师
解惑.
作者:
tlshs
时间:
2022-11-21 08:48
这个问题难道还有点难吗?
作者:
server
时间:
2022-11-21 15:30
应该没必要重复造轮子吧。
作者:
tlshs
时间:
2022-11-22 14:24
我是想请教一下搞清其中的原理
作者:
Xelloss0618
时间:
2022-11-22 14:53
你代码没发全,这个文本格式不如上截图。
就答你后几句吧。
首先,别以为字符 '0' 是等于 0,自己查 ASCII 表,字符 '0' 的十进制值是 48。
原理是字符'0'-'9'在 ASCII 里是连续的,把这些字符值减去48,就相当于数值 0-9。
后面'a'到'f'也一样,你自己看一下就明白了。
作者:
tlshs
时间:
2022-11-23 09:07
谢谢回复,现在明白了
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4