Binary to Text (ASCII) Conversion

Description:

Write a function that takes in a binary string and returns the equivalent decoded text (the text is ASCII encoded).

Each 8 bits on the binary string represent 1 character on the ASCII table.

Note: In the case of an empty binary string your function should return an empty string.

using System;
using System.Collections.Generic;
using System.Linq; public static class Kata
{
public static string BinaryToString(string binary)
{
int count = binary.Length / ;
string tmp = string.Empty;
List<char> list = new List<char>();
for (int i = ; i < count; i++)
{
tmp = binary.Substring(i * , );
list.Add((char)(Convert.ToInt32(tmp,)));
}
return string.Join(string.Empty,list);
}
}

其他人的解法:

binary.Split(8)的用法,通过this关键字对string类进行了扩展,增加了扩展方法Split(int n)
IEnumerable<string>和yield的用法

Convert.ToChar的用法

using System;
using System.Linq;
using System.Collections.Generic; public static class Kata
{
public static string BinaryToString(string binary)
{
return string.Join("", binary.Split().Select(s => Convert.ToChar(Convert.ToInt32(s, ))));
} static IEnumerable<string> Split(this string s, int size)
{
for (int i = ; i < s.Length; i += size) {
yield return s.Substring(i, Math.Min(size, s.Length - i));
}
}
}

Encoding.GetString 方法 (Byte[])

ASCIIEncoding

using System;
using System.Text;
using System.Collections.Generic; public static class Kata
{
public static string BinaryToString(string binary)
{
List<Byte> byteList = new List<Byte>();
for (int i = ; i < binary.Length; i += )
byteList.Add(Convert.ToByte(binary.Substring(i, ), ));
return Encoding.ASCII.GetString(byteList.ToArray());
}
}

上面版本的装逼写法

using System;
using System.Text;
using System.Linq; public static class Kata
{
public static string BinaryToString(string binary)
{
return Encoding.ASCII.GetString(Enumerable.Range(, binary.Length / )
.Select(i => binary.Substring(i * , ))
.Select(s => Convert.ToByte(s, )).ToArray());
}
}

Binary to Text (ASCII) Conversion的更多相关文章

  1. Linux学习笔记:ftp中binary二进制与ascii传输模式的区别

    在使用ftp传输文件时,常添加上一句: binary  -- 使用二进制模式传输文件 遂查资料,如下所获. FTP可用多种格式传输文件,通常由系统决定,大多数Linux/UNIX系统只有两种模式:文本 ...

  2. Ascii vs. Binary Files

    Ascii vs. Binary Files Introduction Most people classify files in two categories: binary files and A ...

  3. Text and Binary modes

    http://perlmaven.com/what-is-a-text-file https://cygwin.com/cygwin-ug-net/using-textbinary.html Text ...

  4. Convert HTML to Text(转载)

    原文地址:http://www.blackbeltcoder.com/Articles/strings/convert-html-to-text  Download Source Code Intro ...

  5. javascript ASCII和Hex互转

    <script> var symbols = " !\"#$%&'()*+,-./0123456789:;<=>?@"; var loAZ ...

  6. C# Winform 支持Hex与ASCII输入和切换的文本框

    最近一直在做一个支持串口,TCP,UDP通讯调试的一体化工具(也就是C#串口调试工具 v2.0的第三版),其中涉及到16进制数据和ASCII码的输入,所以继承了TextBox的基础上,写了这个支持He ...

  7. ASCII 码对应表

    Macron symbol ASCII CODE 238 : HTML entity : [ Home ][ español ] What is my IP address ? your public ...

  8. C#中ASCII码学习心得

    1.利用调用ASCIIEncoding类来实现各种转换.如简单个ACS码和int转换. ***利用(int)ASCIIEncoding类对象.GetBytes(character)[0]得到整数: p ...

  9. C# ASCII与字符串间相互转换 (转)

    引言: 最近开始学习C#,在写串口助手小工具时遇到十六进制发送与字符发送之间转换的问题, 小弟通过网络各路大神的帮助下,终于实现正确显示收发,小弟菜鸟一枚,不足之处还望各位批评指正O(∩_∩)O! 其 ...

随机推荐

  1. [LCA & RMQ] [NOIP2013] 货车运输

    首先看到这题, 由于要最大, 肯定是求最大生成树 那么 o(n2) dfs 求任意点对之间的最小边是可以想到的 但是看看数据范围肯定TLE 于是暴力出来咯, 不过要注意query的时候判断的时候要 m ...

  2. (转)使用inotify、inotify_add_watch、inotify_rm_watch、read编写监控程序

    转自:http://blog.csdn.net/myarrow/article/details/7096460 inotify是什么 inotify是文件系统变化通知机制,在监听到文件系统变化后,会向 ...

  3. N个数随机相加得出固定值的排列组合

    static double[] iArr = new double[10] { 1,2,3,4,5,6,7,8,9,10 }; static Stack<double> stack = n ...

  4. ASP.NET MVC3实现无刷新验证码

    在MVC中进行留言,评论等功能时,不可避免会用到表单提交时的验证码问题,有时,我们的作法是,当表单被提交后,在controller里去判断验证码的正确与否,但我认为这种用户体验是很差的,今天正好有后时 ...

  5. 通过WebApi取出XML数据

    Get请求: public static Result<GetExpressCollectionResponseType> GetDataFromWebs(string waybillNu ...

  6. java 子类的实例化和代码块初始化过程

    1,子类的实例化 1,子父类中的构造函数的特点. 在子类构造对象时,发现,访问子类构造函数时,父类也运行了. 为什么呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句. super(); 子类 ...

  7. 前端资源多个产品整站一键打包&包版本管理(一)

    来新公司工作的第五个月.整站资源打包管理也提上了日程. 问题: 首先.什么是整站的打包管理呢? 我们公司的几个重要产品都在同一个webapp里面,但是,不同的开发部门独立开发不同的产品,长期以来,我们 ...

  8. C#之Attribute(特性)

    本文主要复习下基础知识: 1.C#系统自带的特性: 建立一个控制台项目取名为AttributeTest: 我们添加了一个系统自带的Attribute叫Condition,这个特性表示在程序的DEBUG ...

  9. php获取汉字首字母的函数

    本文介绍用php实现汉字转化为首字母的方法,主要功能是:功能明确,易于修改维护和扩展: 英文的字串:不变返回(包括数字):中文字符串:返回拼音首字符: 中英混合串: 返回拼音首字符和英文. 网上的方法 ...

  10. 【6】了解Bootstrap栅格系统基础案例(1)

    从上一张我们了解了栅格选项,那么我们就来了实战了解下吧(其实还是中文官网的案例) ps.我这里是电脑上用谷歌浏览器来观察的,毕竟电脑的分辨率高(1440*900px),谷歌浏览器最大化后,值比大屏幕设 ...