C#中如何将整数转换为二进制字符串?我正在写一个数字化仪。如何使用C#中的内置函数将整数转换为二进制字符串(Convert.ToString根据给定的值做不同的事情)?今天几乎所有的计算机都在内部使用二进制补码表示,所以如果你像这样进行直接转换,你最终会得到一个二进制补码字符串:publicstringConvert(intx){char[]bits=newchar[32];诠释我=0;while(x!=0){bits[i++]=(x&1)==1?'1':'0';x>>=1;}Array.Reverse(bits,0,i);返回新字符串(位);}这是其余两个转换的基础。对于符号大小,只需提前提取符号并转换绝对值:bytesign;if(x求补数,如果数是负数,则减一:if(x简单的说:IntToBinValue=Convert.ToString(6,2);至少有一部分答案是用decimal.GetBits(someValue)来转换二进制表示形式的十进制数。反过来,BitConverter.GetBytes可用于从decimal.GetBits()返回的元素,以将整数转换为字节。您可能会发现decimal.GetBits()文档很有用。但是,我不不知道如何从字节到十进制。更新:根据作者的更新:BitConverter包含将数字转换为字节的方法,方便获取二进制表示。GetBytes()和ToInt32()方法方便转换为每个方向。如果您发现它更容易解释为1和0,则ToString()重载对于创建十六进制字符串表示很方便。vara=Convert.ToString(4,2).PadLeft(8,'0');你可以从第一原则一点一点地构建表示。不确定你不想使用哪些内置函数,但也许你可以逐个字符地构建一个字符串?从大于数字的2的最大幂开始。在字符串中按“1”。从你的数字中减去2的幂。取两个最低的权力。如果你走到一半,就停下来。你完成了。如果剩余数大于2的幂,则返回步骤2。如果不是,则在字符串中按“0”并返回步骤4。对于一个补码和二进制补码,计算这些补码步骤。或者这对于您需要的东西来说太基本了吗?这是一个不安全的实现:privatestaticunsafebyte[]GetDecimalBytes(decimald){byte*dp=(byte*)&d;byte[]result=newbyte[sizeof(decimal)];for(inti=0;i这是回复:privatestaticunsafedecimalGetDecimal(Byte[]bytes){if(bytes==null)thrownewArgumentNullException("bytes");if(bytes.Length!=sizeof(decimal))thrownewArgumentOutOfRangeException("bytes","lengthmustbe16");decimald=0;byte*dp=(byte*)&d;byte[]result=newbyte[sizeof(decimal)];for(inti=0;ithis是一个优雅的解决方案:以上是C#学习教程:HowtoconvertanintegertoabinarystringinC#?所有的内容分享出来,如果对大家有用还需要详细了解C#学习教程,希望大家多多指教Follow---//ConvertIntegertobinaryandreturnasstringprivatestaticstringGetBinaryString(Int32n){char[]b=newchar[sizeof(Int32)*8];for(inti=0;i本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载,请注明出处:
