十进制转换二进制(补码)

原创 2005年05月04日 19:59:00

  借鉴了反码算法的经验,在转换为补码的函数中,要以求反码函数为基础,过多的就不在说了,到此为止,转换函数都写完了,我还会添加原码、反码、补码运算的函数模块。十进制转换为二进制补码的VB6代码:


Public Function BinaryConvertC(ByVal iNum As Integer, Optional ByVal iLength As Integer = 8) As String
'//***************************************  Design By 0412Rainbow  **********************************************//
'功能:用于将一个十进制数转换为二进制补码,iNum为所要转换的十进制数,iLength为机器字长(即二进制数的位数),可选,默认传递
'     值为8,iNum的转换范围-2^(n-1) 到 +2^(n-1),返回值为二进制的字符串形式.
'说明:补码简介(引自程序员教程):设机器字长为n,则最高位是符号位,0表示正号,1表示负号;正数的补码与原码和反码相同,负数的
'     补码则等于其绝反码的末尾加1。
'函数调用 二进制补码 = BinaryConvertC(十进制数,二进制字长)
'//**************************************************************************************************************//
ReDim S(iLength) As String * 1
Dim sResult As String, tempResult As String, j As Integer
Dim y As Boolean: y = True             'y用与判断取补加1的时候是否进位.如果进位,则为真;反之,为假.
tempResult = BinaryConvertB(iNum, iLength)
For j = 1 To iLength
    S(j) = Mid(tempResult, iLength - j + 1, 1)
   
Next

If Abs(iNum) <> iNum Then
   For j = 1 To iLength
       If y = True Then
          If S(j) = 0 Then
             S(j) = 1: y = False
          Else
             S(j) = 0
          End If
       Else
          Exit For
       End If
   Next
  
End If
For i = iLength To 1 Step -1
    sResult = sResult & S(i)
    'Debug.Print sResult
Next
BinaryConvertC = sResult

End Function


函数调用举例请参见原码转换的示例即可! -------彩虹 ^_^

十进制整(小)数与二进制补码相互转换

前置知识:二进制与十进制相互转换、原码反码补码移码十进制整数转二进制补码用基本的方法:通过十进制转化为二进制,二进制转为原码,再转反码,再转补码。。。。 详见:http://blog.csdn.ne...

二进制 十进制 八进制 十六进制 互转 原码、反码、补码、

二进制数据是采用位置计数法,其位权是以2为底的幂,逢2进1。 1.二进制与十进制间的相互转换:   (1)二进制转十进制   方法:“按权展开求和”   例: (101...

十进制的正整数,负数, 小数转为二进制.八进制.十六进制的方法 包括原码,反码,补码的介绍

对于初学者,迟早要面对进制的转换,或许

Matlab十进制整数转换成二级制补码

有时候我们需要将十进制数字转换成二进制补码形式,可以利用Matlab实现。 实现原理 Matlab自带的函数dec2bin(d, n)可以实现将十进制非负整数转换成二进制数,其中,d为十进制数,n...
  • jzj1993
  • jzj1993
  • 2015年09月20日 23:23
  • 2514

计算机组成原理:十进制、原码、反码、补码的转换关系

原码、反码、补码的第一位都是是符号位,0为正数,1为负数,不论小数整数都是如此。 eg:0.2(2)是个负数,1.2(2)是个正数,11112(2)是个负数,01112(2)是个正数。 十进制->...

位移&二进制转换&原码&反码&补码

二进制和十进制之间的转换

  • 2013年08月04日 08:55
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:十进制转换二进制(补码)
举报原因:
原因补充:

(最多只允许输入30个字)