Binary to Text (ASCII) Conversion
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 / 8; string tmp = string.Empty; List<char> list = new List<char>(); for (int i = 0; i < count; i++) { tmp = binary.Substring(i * 8, 8); list.Add((char)(Convert.ToInt32(tmp,2))); } 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(8).Select(s => Convert.ToChar(Convert.ToInt32(s, 2)))); } static IEnumerable<string> Split(this string s, int size) { for (int i = 0; i < s.Length; i += size) { yield return s.Substring(i, Math.Min(size, s.Length - i)); } } }
Encoding.GetString 方法 (Byte[])
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 = 0; i < binary.Length; i += 8) byteList.Add(Convert.ToByte(binary.Substring(i, 8), 2)); 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(0, binary.Length / 8) .Select(i => binary.Substring(i * 8, 8)) .Select(s => Convert.ToByte(s, 2)).ToArray()); } }
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了