我知道可以用e命令将数字从键盘输入, 再用w写文件的办法实现. 但这样很是麻烦. (如果用重定位的办法,文本里又要插入很多的e命令和空格) 诸位有没有更好的办法呢?
[ Last edited by enjoyer on 2006-11-29 at 07:34 AM ]
[ Last edited by enjoyer on 2006-11-29 at 07:34 AM ]
一切从底层开始
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
Originally posted by DOSforever at 2006-12-1 07:04:
说实话,我没能理解你的意思。你说的二进制文件是怎么个二进制文件?最好举例说明一下。
此时计算机磁盘里保存的是这些数字的 ASCII码, 而我想让得到的是真值.
Originally posted by DOSforever at 2006-12-1 11:27:
我是这么认为的:实际上计算机中所有的数据都是以二进制形式保存和流动的,不存在以ASCII码保存或以真值保存这种说法,只是当这些数据显示给 ...
| 评分人 | 分数 | 时间 |
|---|---|---|
| redtek | +5 | 2006-12-04 07:39 |
E:\>dir /b mawk.exe hex.txt hex2ascii.awk
mawk.exe
hex.txt
hex2ascii.awk
E:\>more hex.txt
20 20 bb b6 d3 ad c0 b4 b5 bd d6 d0 b9 fa 44 4f
53 c1 aa c3 cb c2 db cc b3 0d 0a 57 69 6e 64 6f
77 73 d0 c2 d2 bb b4 fa c3 fc c1 ee d0 d0 b9 a4
be df be a1 d4 da 3a 0d 0a 20 20 20 57 69 6e 50
45 a1 a2 50 6f 77 65 72 53 68 65 6c 6c b0 e5 bf
e9 21 0d 0a
E:\>more hex2ascii.awk
{gsub(/*/,"")
for (i=1;i<=length($0)/2;i++){
cmd=sprintf("mawk \"BEGIN{printf \\\"\x%s\\\"}\"\n",substr($0,i*2-1,2))
system(cmd)}}
E:\>mawk -f hex2ascii.awk hex.txt