现在搞辅助计算功能,如果输入、输出都是给计算机看的十六进制数据,那比较简单,如果输出有供人看的字符串,那就比较费事了。
涉及一些逻辑上比较混乱的功能,比如 to_ansi_string函数,用于给将ansi格式的内存数据输出成字符串,to_ansi_string( 31323334 )显示成 1234,这"1234"如果在一个嵌套函数中,就变成了十六进制数了,所以现在定义 to系列的函数不能嵌套,只能放在最外层,而且遇到to系列的函数计算终止。
//
to_ansi_string ( 303132333435363738393a3b3c3d3e3f )
//--to_ansi_string convert ansi format input data to ansi string
//-- input = 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
//-- output = 0123456789:;<=>?
//
//to_ansi_string ( 55667788 )
//--to_ansi_string convert ansi format input data to ansi string
//-- input = 55 66 77 88
//-- output = Ufw
//
//to_ansi_string ( ansi_string ( "小奇" ) )
//----ansi_string convert utf16-little-endian format input data to ansi format
//---- input = 0F 5C 47 59
//---- output = D0 A1 C6 E6
//
//--to_ansi_string convert ansi format input data to ansi string
//-- input = D0 A1 C6 E6
//-- output = 小奇
//
//to_ansi_string ( utf8_string ( "刘备一抬手,嘟嘟嘟嘟嘟嘟,能打子弹" ) )
//----utf8_string convert utf16-little-endian format input data to utf8 format
//---- input = 18 52 07 59 00 4E AC 62 4B 62 0C FF 1F 56 1F 56 1F 56 1F 56 1F 56 1F 56 0C FF FD 80 53 62 50 5B 39 5F
//---- output = E5 88 98 E5 A4 87 E4 B8 80 E6 8A AC E6 89 8B EF BC 8C E5 98 9F E5 98 9F E5 98 9F E5 98 9F E5 98 9F E5 98 9F EF BC 8C E8 83 BD E6 89 93 E5 AD 90 E5 BC B9
//
//--to_ansi_string convert ansi format input data to ansi string
//-- input = E5 88 98 E5 A4 87 E4 B8 80 E6 8A AC E6 89 8B EF BC 8C E5 98 9F E5 98 9F E5 98 9F E5 98 9F E5 98 9F E5 98 9F EF BC 8C E8 83 BD E6 89 93 E5 AD 90 E5 BC B9
//-- output = 鍒樺涓€鎶墜锛屽槦鍢熷槦鍢熷槦鍢燂紝鑳芥墦瀛愬脊
//
//to_ansi_string ( ansi_string ( "刘备一抬手,嘟嘟嘟嘟嘟嘟,能打子弹" ) )
//----ansi_string convert utf16-little-endian format input data to ansi format
//---- input = 18 52 07 59 00 4E AC 62 4B 62 0C FF 1F 56 1F 56 1F 56 1F 56 1F 56 1F 56 0C FF FD 80 53 62 50 5B 39 5F
//---- output = C1 F5 B1 B8 D2 BB CC A7 CA D6 A3 AC E0 BD E0 BD E0 BD E0 BD E0 BD E0 BD A3 AC C4 DC B4 F2 D7 D3 B5 AF
//
//--to_ansi_string convert ansi format input data to ansi string
//-- input = C1 F5 B1 B8 D2 BB CC A7 CA D6 A3 AC E0 BD E0 BD E0 BD E0 BD E0 BD E0 BD A3 AC C4 DC B4 F2 D7 D3 B5 AF
//-- output = 刘备一抬手,嘟嘟嘟嘟嘟嘟,能打子弹
//
//to_ansi_string ( to_ansi_string ( ansi_string ( "1234" ) ) )
//------ansi_string convert utf16-little-endian format input data to ansi format
//------ input = 31 00 32 00 33 00 34 00
//------ output = 31 32 33 34
//
//----to_ansi_string convert ansi format input data to ansi string
//---- input = 31 32 33 34
//---- output = 1234
/
最后一个函数,to_ansi_string ( to_ansi_string ( ansi_string ( "1234" ) ) ),其实只有内层的to_ansi_string被执行了。