对于十进制转换成二进制,这个代码中是满足8bit的,其中最高位是符号位。

具体的代码如下:

 1 public class DecadeToBinary
 2     {
 3         public String Convert(Int32 num)
 4         {
 5             String convertResult = String.Empty;
 6             Boolean negative = false;
 7             if (num < 0)
 8             {
 9                 negative = true;
10                 num = (Math.Abs(num)^255)+1;
11             }
12             while (true)
13             {
14                 convertResult = convertResult.Insert(0, (num % 2).ToString());
15                 if (num / 2 < 2)
16                 {
17                     convertResult = convertResult.Insert(0, (num / 2).ToString());
18                     break;
19                 }
20                 num = num / 2;
21             }
22             convertResult = convertResult.PadLeft(7'0');
23             convertResult = convertResult.PadLeft(8, negative?'1':'0');
24             return convertResult;
25         }
26     }

具体的如果大家想实现16bit的,可以修改。

下面给出测试代码:

 

 [TestMethod]
        
public void TestConvert()
        {
            DecadeToBinary decadeToBinary 
= new DecadeToBinary();
            Assert.AreEqual
<String>("00000100", decadeToBinary.Convert(4));
            Assert.AreEqual
<String>("00000000", decadeToBinary.Convert(0));
            Assert.AreEqual
<String>("01111111", decadeToBinary.Convert(127));
            Assert.AreEqual
<String>("11111001", decadeToBinary.Convert(-7));
            Assert.AreEqual
<String>("10000001", decadeToBinary.Convert(-127));
            Assert.AreEqual
<String>("10000000", decadeToBinary.Convert(-128));
        }

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-18
  • 2021-07-11
  • 2022-01-24
  • 2022-12-23
  • 2021-11-17
猜你喜欢
  • 2021-04-13
  • 2021-11-22
  • 2022-12-23
  • 2021-06-03
  • 2021-11-28
  • 2021-09-15
  • 2022-12-23
相关资源
相似解决方案