通过使用该语句,我可以通过交换值将二进制值更改为十进制值,但是为什么该语句不能将十进制转换为二进制?
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>5.1.0.Final</version>
</dependency>
答案 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);