首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有比Convert.ToString(字节,2)更快的基-2转换?

有没有比Convert.ToString(字节,2)更快的基-2转换?
EN

Stack Overflow用户
提问于 2015-11-21 03:44:45
回答 2查看 65关注 0票数 0

是否有比使用Convert.ToString(byte,2)更快的方法进行base-2转换?

我将在一个循环中运行它:

代码语言:javascript
复制
Function varintbinaryToint(b() As Byte) As Integer
    Const b127 As Byte = 127
    Dim sb = New Text.StringBuilder

    For i = b.Length - 1 To 0 Step -1
        sb.AppendFormat(Convert.ToString(b(i) And b127, 2).PadLeft(7, "0"c))
    Next

    Return Convert.ToInt32(sb.ToString, 2)

    --to binary      1100 0100  ‬ ‭0001 0110‬
    --remove msb     ‭ 100 0100  ‬ ‭ 001 0110‬
    --reverse         001 0110‬    100 0100
    --join           10110‬1000100
    --bin 2 int      2884
End Function
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-25 08:31:01

我看过Convert.ToString的源代码(字节,int)

它调用了一个本机实现,所以我想它是我们所能拥有的最快的:

代码语言:javascript
复制
ParseNumbers.IntToString((int)value, toBase, -1, ' ', ParseNumbers.PrintAsI1)

这里的源代码:http://referencesource.microsoft.com/#mscorlib/system/parsenumbers.cs,9d6624da44b02e1f

各国:

**类别: ParseNumbers **目的:分析数字和字符串的方法。 **所有方法都是用本机实现的。

票数 0
EN

Stack Overflow用户

发布于 2015-11-22 16:40:11

通过将代码从循环中移出以创建一个比每次传递运行代码更快的索引的数组,可以节省每次函数调用期间的时间。(显然,这不是一个更快的基-2转换,因为它使用相同的代码进行转换。)

代码语言:javascript
复制
Private Shared SevenBitZeroPaddedBinary = Enumerable.Range(0,128) _
    .Select(Function(i) Convert.ToString(i,2).PadLeft(7,"0"c)) _
    .ToArray() 

Function varintbinaryToint(b() As Byte) As Integer
    Const b127 As Byte = 127
    Dim sb = New Text.StringBuilder

    For i = b.Length - 1 To 0 Step -1
        sb.Append(SevenBitZeroPaddedBinary(b(i) And b127))
    Next

    Return Convert.ToInt32(sb.ToString, 2)

    '--to binary      1100 0100  ‬ ‭0001 0110‬
    '--remove msb     ‭ 100 0100  ‬ ‭ 001 0110‬
    '--reverse         001 0110‬    100 0100
    '--join           10110‬1000100
    '--bin 2 int      2884
End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33839472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档