@00FA00400000000101110B00FF00001000000000000000000000000000000000025000000000000000000000000000002400000000000230000000000000000004300000000000000000000000000000000000000000000000000000000000000000000000000000011000000000s00000000000000000000000000000000000000000000000000C0000000000000000000000000000000000300000000000000A000000000000000000000000000000000000001000000000000000034000000000000000110000000000000000000200000000000000000000000B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000003000000000000000000000000000000000000000000000000010000000000000000000000000000D0000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AAA0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031*\CR
如上面代码:
首先取的字符是:去掉前面的“@00FA00400000000101110B”字符和末尾的“31*\CR”6个字符,中间的那些字符都是由16禁止组成的。
例如“00FF 0000 0000 1000"这种格式,要把这些“无数”的16进制数全部转成2进制,1个16进制转为2禁止是16个字符,00FF=“0000000011111111”,也就是如果最前面不为1,要用0补满16位。最后把这些所有的2进制数存入数组。
见以下代码。注意其中的 HexString2BinString方法。
代码中没有使用问题中的十六进制串,而且原串中中还带有一个字符 s
额真细心,我例子错打了个s都看出来了。不过是4个字符4个字符的这样转2进制啊,你上面的是1个字符转2进制啊
追答在提问中有:“00FF=0000000011111111 ……”
意思不就是将十六进制串中的 0-->二进制的 0000 , 0-->二进制的 0000, F-->二进制的 1111,F-->二进制的 1111,最后得到 0000000011111111 吗?
哦哦 不好意思 我糊涂了,不过是要每4位把他存到数组里啊,例如你上面的例子,0001001010101110,这些存到数组[0],然后依次下面的数组[1],数组[2]...
追答您的意图是:十六进制字串s=“12AEF”转换成一个二进制字串数组string[] r,1-->0001,作为r[0];2-->0010,作为r[1];A-->1010,作为r[2]……
对吗?
不是我的意思是12AE的二进制作为r[0],F000的二进制作为r[1],这种意思。也就是1个16进制转为2进制后的数存到数组里。而上面有那么多个16进制,就是r[n].
追答using System.Collections.Generic;