请教一个问题
参考例子写了一个十六进制转十进制的代码,但有点搞不清原理:来源文本=十六进制文本
循环(,7,n)
字符名=取字符(来源文本,7,n)//4个字节
如果(字符名>='0'&&字符名<='9')
字符值=字符名-'0'
否则(字符名>='a'&&字符名<='f')
字符值=10+字符名-'a'
其中:字符值=字符名-’0’
相当于
字符值=字符名,
字符值=10+字符名-’a’
相当于
字符值=字符名
,但直接用后者就出错,请高手,老师
解惑. 这个问题难道还有点难吗? 应该没必要重复造轮子吧。 我是想请教一下搞清其中的原理 你代码没发全,这个文本格式不如上截图。
就答你后几句吧。
首先,别以为字符 '0' 是等于 0,自己查 ASCII 表,字符 '0' 的十进制值是 48。
原理是字符'0'-'9'在 ASCII 里是连续的,把这些字符值减去48,就相当于数值 0-9。
后面'a'到'f'也一样,你自己看一下就明白了。 谢谢回复,现在明白了
页:
[1]