我有这样一条线:
pad(2)= 0x0041
我想将十六进制更改为十进制,预期结果是
pad(2)= 65
我刚试过:%s/\(.*\) = \(.*\)/\1 = \=printf("%d", submatch(2)),但失败了.
你能帮忙解决这个问题吗?
sth*_*sth 10
Vim具有str2nr()将不同数字表示转换为其十进制值的功能.要转换十六进制值,您可以像这样使用它:
s/0x[0-9a-fA-F]\+/\=str2nr(submatch(0), 16)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2634 次 |
| 最近记录: |