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

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

  这是段把十进制数转换为二进制反码的VB6代码,这段代码需要转换为原码函数(BinaryConvertA)的支持,开始的时候,我把它写成一个了独立的函数,但最后还是改到了现在这个样子,感觉如果转换原码代码部分有错误,可以把错误的代码改了就可以了,这样的代码逻辑性更好,也容易维护,出现代码不同步的可能性低,降低了代码的调试难度。同时,发现了在原码转换中的一个BUG,就是当十进制数为0的时候,我已经对前一篇文章进行了修改,但关于+0和-0的问题,还是没有处理好。我是写了一个都处理的版本,但因为传递的是数字,所以VB是不传符号的,所以-0传过去也会被当成+0处理。所以如果要在函数内完成,就必须传字符串,但函数内有数的比较运算,如果传字符串,就必须在函数中将字符串转成integer,比较麻烦(也增加了些不必要的运算,因为很多时候并不是-0,但却必须要进行cint(inum)运算),所以,我想把判断放在调用函数前会比较好!下面就是十进制转换到二进制反码的代码:


Public Function BinaryConvertB(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表示负号;正数的反码与原码相同,负数的反码
'     则是其绝对值按位取反。
'函数调用 二进制反码 = BinaryConvertB(十进制数,二进制字长)
'//**************************************************************************************************************//
ReDim S(iLength) As String * 1
Dim sResult As String, tempResult As String, j As Integer
tempResult = BinaryConvertA(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 - 1
        If S(j) = 0 Then
            S(j) = 1
        Else
            S(j) = 0
        End If
    Next
   
End If


For i = iLength To 1 Step -1
    sResult = sResult & S(i)
    'Debug.Print sResult
Next
BinaryConvertB = sResult


End Function


函数调用举例只要参见转换原码的示例就好了.

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

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

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

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

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

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

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

二进制:原码、反码、补码转换规则;取补操作(-)和取反操作的区别

以下内容来自牛客网:Green848的答案里面有些本质性的错误,只不过误打误撞刚好跟实际计算出来的答案一样而已。看来大家对原码、反码、补码、取反运算~、以及单目运算符 - 的理解还不够哈,O(∩_∩)...
  • lgfun
  • lgfun
  • 2016年09月15日 21:27
  • 354

二进制十进制等转换工具

  • 2013年03月14日 16:29
  • 17KB
  • 下载

【栈】十进制转换成二进制的过程及算法实现

思想过程: 首先输入一个十进制的数e,然后让这个十进制的数字一直除以2,如果e/2!=0时,把e%2压入栈中,并且令e=e/2,然后继续循环。当e/2==0时,把e的值放入栈中。然后把栈中的元素输出...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:十进制转换二进制(反码)
举报原因:
原因补充:

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