下面的例子是把一个字符以十六进制的形式输出using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { char a = 'w'; Console.WriteLine(((int)a).ToString("X04")); Console.ReadLine(); } } }
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
char a = 'w';
Console.WriteLine(((int)a).ToString("X04"));
Console.ReadLine();
}
}
}
有这么一串字符数组,因该是16进制的,要求是将他们按32位分段,然后在“异或”,然后在“取反”
726e 616c 2020 4143 4b4c 474e 3030 3030
我先按我的理解来解一下你这个题目.首先需求1, 是按32位分段. 这个意思我猜应该是 [00000000][00000000][00000000][00000000]
那么, 这就是4个字节的int了.
对于一个int, 你要做 位运算难道还难吗?需求2, “异或”,然后再“取反”.这个就是我上面说的[位运算] 其实位运算不难. 计算机的基础知识,网上对于异或,取反也是一堆的资料,你找找吧.不用我说什么.需求3, 你的这串字符:
726e 616c 2020 4143 4b4c 474e 3030 3030
相信你自己也明白, 这就是些16进制的东西.你也会自己转.
我说一下要注意什么:
72 = 1个字节
726e = 2个字节
726e 616c = 4个字节你这一组字符串有16个字节. 合计4个int
首先你要解析这4个int 然后再对每一个int 异或,取反 OK 完毕.
726e 616c
=
[72][6e][61][6c]
=
[114][110][97][108]