vb.net 计算8位二进制数(包括符号位)的 原码反码补码

前端之家收集整理的这篇文章主要介绍了vb.net 计算8位二进制数(包括符号位)的 原码反码补码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

vb 控制台程序

通过输入带符号位的8位二进制数计算 原码 反码 补码

写的方法 可能有些麻烦 但是能得到 理论上的效果

如果有高手知道什么好方法希望给我邮件共享一下

771948524zxl@gmail.com

Module Module1

    Sub Main()

        Dim i,j,a,b,c,d,e,f,g,h,k,m As String
        Dim l_long As String = 1
        Console.WriteLine("原码反码补码计算器(8位进制数的 原码反码补码计算)")
        Console.WriteLine("请输入一个带符号位的8位二进制数(符号位用数字表示0正 1负)")

        i = Console.ReadLine()
        '判断符号位是正还是负
        j = i.Substring(0,1)
        If j = 0 Then
            '整数的原码反码补码相同
            Console.WriteLine("源码:{0}反码:{1}补码:{2}",i,i)
        Else
            a = i.Substring(0,1)
            b = i.Substring(1,1)
            c = i.Substring(2,1)
            d = i.Substring(3,1)
            e = i.Substring(4,1)
            f = i.Substring(5,1)
            g = i.Substring(6,1)
            h = i.Substring(7,1)
            '负数的反码计算
            If b = 1 Then
                b = 0
            Else : b = 0
                b = 1
            End If
            If c = 1 Then
                c = 0
            Else : c = 0
                c = 1
            End If
            If d = 1 Then
                d = 0
            Else : d = 0
                d = 1
            End If
            If e = 1 Then
                e = 0
            Else : e = 0
                e = 1
            End If
            If f = 1 Then
                f = 0
            Else : f = 0
                f = 1
            End If
            If g = 1 Then
                g = 0
            Else : g = 0
                g = 1
            End If
            If h = 1 Then
                h = 0
            Else : h = 0
                h = 1
            End If

            m = a + b + c + d + e + f + g + h
            '负数的补码计算
            If h = 0 Then
                h = 1
            Else
                h = 0
                If g = 0 Then
                    g = 1
                Else
                    g = 0
                    If f = 0 Then
                        f = 1
                    Else
                        f = 0
                        If e = 0 Then
                            e = 1
                        Else
                            e = 0
                            If d = 0 Then
                                d = 1
                            Else
                                d = 0
                                If c = 0 Then
                                    c = 1
                                Else
                                    c = 0
                                    If b = 0 Then
                                        b = 1
                                    Else
                                        b = 0
                                        If a = 0 Then
                                            a = 1
                                        Else
                                            a = 0
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
            '判读 是否会溢出(超出最大数  超出的部分用l_long代替输出)
            If a = 1 Then
                k = a + b + c + d + e + f + g + h
            Else
                k = l_long + "," + a + b + c + d + e + f + g + h
            End If

            Console.WriteLine("源码:{0}反码:{1}补码:{2}",m,k)

        End If
        Console.ReadLine()
    End Sub

End Module

运行效果

猜你在找的VB相关文章