看这段代码
h = (c >> 4) & 0xf;
l = c & 0xf;
printf(h + 'x');
如何将此代码转换为 C#?
最佳答案
那 printf 是完全错误的,你正试图从一个没有转换的整数中创建一个指针,而且你肯定不想将数字转换为 const char*。假设它是为了打印假定的无符号整数。等价于:
System.Console.WriteLine(120 + (c / 16));
或者学究气:
UInt32 h = (c >> 4) & 0xF;
System.Console.WriteLine('x' + h);
我会注意到不需要按位操作,任何体面的编译器都会为您完成。
UInt32 h = c / 16;
System.Console.WriteLine(120 + h);
该代码中甚至没有使用 l 变量,但在 C# 中它将是:
UInt32 l = c & 0xF;
哪个写得更好:
UInt32 l = c % 16;
关于c# - 将 C++ 代码转换为 C# 用于加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8148481/