【问题标题】:Converting binary to base 4将二进制转换为基数 4
【发布时间】:2014-04-15 10:58:25
【问题描述】:

我希望达到的目标:

我想将文本转换为 DNA(碱基 4 系统,“a,G,T,c”)

我打算怎么做:

将文本字符串转换为二进制,

        Dim BinaryConvert As String = ""
        For Each C As Char In Textbox1.Text
            Dim s As String = System.Convert.ToString(AscW(C), 2).PadLeft(8, "0")
            BinaryConvert &= s
        Next
        Textbox1.Text = BinaryConvert '//Changes the textbox1.Text into binary form

然后通过伪代码解决方案将二进制转换为base 4:

如果(二进制字符串的长度是奇数)在字符串的前面(最左边的位置)添加一个零。 创建一个空字符串以添加翻译后的数字。 而二进制的原始字符串不为空{ 仅将二进制 String 的前两位数字转换为 base-4 数字,并将此数字添加到新 String 的末尾(最右边)索引。 在此之后,从二进制字符串中删除相同的两位数字,如果它不为空,则重复。 }

将二进制转换为 DNA 背后的想法是简单地将 G 和 T 设置为 1,其中 c 和 a 等于零(G=T=1,a=c=0)。

所以我要做的就是先将字符串转换为二进制,然后再转换为 base 4,以便将文本转换为遗传密码。能否请您帮我编写将二进制转换为基数 4 的代码。

感谢您的帮助!

【问题讨论】:

    标签: vb.net string binary numbers base


    【解决方案1】:

    从基数 2 转换为基数 4 非常简单。由于 4 本身是 2 的 2 次方,这意味着您可以简单地组合两个位来创建一个以 4 为底的位置(2 位可以表示 4 个可能的值,而 1 个以 4 为底的位置也可以表示 4 个可能的值)。例如:

    11100100(基数 2)= 3210(基数 4)

    【讨论】:

    • 感谢您的回复!代替 0123,我可以把它改成 aTGc 吗?
    • 如果你指定 GT=1 和 ac=0,我仍然有点困惑你如何得到基数 4。在我看来,您需要为每个字母分配 2 位值而不是 1 位值。如a=00、c=01、G=10、T=11。
    • 不是 GT=1 和 ac=0 而是 G=T=1 和 a=c=0
    • 这行得通吗?伪代码解决方案:如果(二进制字符串的长度是奇数)在字符串的最前面(最左边的位置)加一个零。创建一个空字符串以添加翻译后的数字。虽然二进制的原始字符串不为空 { 仅将二进制字符串的前两位转换为 base-4 数字,并将此数字添加到新字符串的末尾(最右边)索引中。在此之后,从二进制字符串中删除相同的两位数字,如果它不为空,则重复。 }
    • 对我来说,您的伪代码似乎是从二进制转换为基数 4 的可靠解决方案。现在都是执行问题。
    猜你喜欢
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 2019-05-18
    • 2011-01-08
    相关资源
    最近更新 更多