为什么我不能使用Convert.ToInt32将整数转换为二进制?

时间:2019-07-19 07:25:10

标签: c#

通过使用该语句,我可以通过交换值将二进制值更改为十进制值,但是为什么该语句不能将十进制转换为二进制?

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-envers</artifactId>
   <version>5.1.0.Final</version>
</dependency>

3 个答案:

答案 0 :(得分:2)

您应该使用Convert.ToInt32(String, Int32)方法将二进制转换为整数,并使用Convert.ToString(Int32, Int32)方法将整数转换为二进制。

string binaryVal = Convert.ToString(decimalVal, 2);

查找更多信息:

https://docs.microsoft.com/en-us/dotnet/api/system.convert.toint32?view=netframework-4.8

https://docs.microsoft.com/en-us/dotnet/api/system.convert.tostring?view=netframework-4.8

答案 1 :(得分:1)

它们具有不同的字节大小:https://condor.depaul.edu/sjost/nwdp/notes/cs1/CSDatatypes.htm并且您正在尝试直接转换一个并期望二进制,而这不能那样工作。

这两个答案应该可以帮助您: How do I convert a decimal to an int in C#?

Convert integer to binary in C#

您将从这两个答案中得出的结论是Covnert.ToInt32没有重载,该重载接受十进制的实例并将其转换为二进制。您需要先将小数转换为整数,然后才能将其转换为二进制,例如:

decimal value = 8;
int n = Convert.ToInt32(value);

string binary = Convert.ToString(n, 2);
binary.Dump();

输出为:1000

此示例已在Linqpad中进行了测试

答案 2 :(得分:1)

int decimalVal = 10;
string binary = Convert.ToString(decimalVal, 2);