不确定我的方向是否正确。
我找不到有关波浪号的信息。

int n = 5;
int m = ~n;

string numAsString = Convert.ToString(~n, 2);

char[] NumAsChar = numAsString.ToCharArray();

long l = Convert.ToInt64(numAsString, 2);

Console.WriteLine(numAsString);
Console.WriteLine(l);

最佳答案

您可能正在寻找一个简单的答案。

int n = 5;
byte[] nbytes = BitConverter.GetBytes(n);
for(int i = 0 ; i < nbytes.Length; i++)
    nbytes[i] = ~nbytes[i];
n = BitConverter.ToInt32(nbytes, 0);


编辑:实际上,您不能在字节[]上执行〜。你可以做

for(int i = 0 ; i < nbytes.Length; i++)
    nbytes[i] = ~nbytes[i];


或根本不使用字节数组。

为了清楚起见,请注意您可以

n = ~n;


并跳过任何分离操作。但是您专门要求字节转换。

关于c# - 如何从十进制转换为二进制用〜将其反转并转换回十进制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38933682/

10-15 15:38