修剪好的虎刺梅图:C#中 二进制转换十六进制问题!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 10:32:14
我要将二进制“0010”转换成16进制数怎么实现?在C#中。
这样,不错!
那我要将16进制或是10进制的数值转换为字符呢,如:
16进制:21 -> !
10进制:33 -> !

你可以先把二进制转换成10进制,然后用Hex函数再转化成16进制的

呵呵,这样的2进制字符串。
你可以把它们切割成/4的一个字符串数组
然后分析
比如:
00100011001101011100
可以分成:
0010 0011 0011 0101 1100 5个字符串
String strvalue = "";
sub为分出的数组
for (int i=0; i<sub.length; i++){
switch(sub[i]) {
case "0001": starvalue += "1";break;
....
}
}
应该可以把,字符串和10进制数之间转为HEX都是有API的。当然不是HEX函数,呵呵,那是BASIC里的。
但是,像这样硬生生的编码情况还没有见过。
在内存里都是2进制编码,理论上没有道理会出现这样的情况。本来01都是占一位,这样转成字符串成8位了。咯咯。不过到是让我有了新的想法:
int hex = 0;
for (int i=0; i<string.length; i++)
{
hex |= (int)string.CharAt(i++)<<3;
hex |= (int)string.CharAt(i++)<<2;
hex |= (int)string.CharAt(i++)<<1;
hex |= (int)string.CharAt(i++);
strvalue += hex.ToHex();
hex = 0;
}