Tag: 二进制

如何在7位二进制数上添加偶校验位

我继续上一个问题。 我正在制作ac#程序,用户输入一个7位二进制数,计算机打印出数字右侧偶校验位的数字。 我在挣扎。 我有一个代码,但它说BitArray是一个命名空间,但用作一个类型。 另外,有没有办法可以改进代码并使其更简单? namespace BitArray { class Program { static void Main(string[] args) { Console.WriteLine(“Please enter a 7-bit binary number:”); int a = Convert.ToInt32(Console.ReadLine()); byte[] numberAsByte = new byte[] { (byte)a }; BitArray bits = new BitArray(numberAsByte); int count = 0; for (int i = 0; i < 8; i++) { if (bits[i]) […]

如何将二进制转换为字符串?

static List ConvertTextToBinary(int number, int Base) { List list = new List(); while (number!=0) { list.Add(number % Base); number = number / Base; } list.Reverse(); return list; } static void Main(string[] args) { string s = “stackoverflow”; int counter=0; while (counter!=s.Length) { int[] a = ConvertTextToBinary(s[counter], 2).ToArray(); for (int i = 0; i < a.Length; […]

如何将二进制字符串转换为float或double?

在这个问题中,Bill The Lizard询问如何显示float或double的二进制表示 。 我想知道的是,给定一个适当长度的二进制字符串,我怎样才能执行反向操作(在C#中)? 换句话说,如何将二进制字符串转换为float或double? 作为旁注,是否有任何位串不会导致有效的浮点数或双倍? 编辑:二进制字符串我的意思是一个0和1的字符串。 所以,我的输入将是这样的字符串: 01010101010101010101010101010101 我的输出应该是一个浮点数。 (或者,如果字符串中有64位,则为double。)

C#binarysearch由T的成员列出

我有一个带有DateTime成员TimeStamp的基类Event 。 许多其他事件类将源于此。 我希望能够快速搜索事件列表,所以我想使用二进制搜索。 (列表数据按时间戳排序,但同时发生的事件可能存在重复的时间戳) 所以我开始写这样的东西: public class EventList : List where T : Event { private IComparer comparer = (x, y) => Comparer.Default.Compare(x.TimeStamp, y.TimeStamp); public IEnumerable EventsBetween(DateTime inFromTime, DateTime inToTime) { // Find the index for the beginning. int index = this.BinarySearch(inFromTime, comparer); // BLAH REST OF IMPLEMENTATION } } 问题是BinarySearch只接受T(所以 – 一个Event类型)作为参数,而我想基于T的成员 – […]

将布尔数组转换为hex数

有没有一种简单的方法可以将布尔值数组转换为8位hex等效值? 例如,如果我有 bool[] BoolArray = new bool[] { true,false,true,true,false,false,false,true }; 如果true值= 1且false值= 0,那么我想要一个将上面的数组转换为0xB1(10110001)的方法或函数。 是否存在这样的function或方法? 顺便说一句,我正在使用C#。

如何以2个字节保存浮点数?

是的我知道IEEE-754半精度标准,是的,我知道在该领域所做的工作。 简单地说,我试图在2个字节中保存一个简单的浮点数(如52.1或1.25 )。 我已尝试过Java和C#中的一些实现,但它们通过解码不同的数字来破坏输入值。 你输入32.1 ,编码解码后得到32.0985 。 有没有什么方法可以在不破坏输入值的情况下以16位存储浮点数? 非常感谢。

是否有一个C#函数将64位“无符号”值格式化为其等效二进制值?

要将数字格式化/显示为等效的二进制forms(在C#中),我总是简单地调用: Convert.ToString(myNumber, 2); 今天,我刚刚意识到我一直在调用的.ToString()重载不支持大于9223372036854775807的值。注意.ToString()重载的签名是: .ToString(long, int) 。 其中“long”是64位有符号值,最大值为9223372036854775807。 换句话说,使用C#,当我运行它时: Convert.ToString(9223372036854775808,2); 我收到此exception消息并不奇怪(由于签名): ‘System.Convert.ToString(object,System.IFormatProvider)’的最佳重载方法匹配有一些无效参数 – 参数2:无法从’int’转换为’System.IFormatProvider’ 我的问题:是否有.NET函数允许我们将大于9223372036854775807的值转换为等效的二进制格式?

C#BinaryWrite over SSL

我正在尝试使用存储在MSSQL varbinary(MAX)字段中的PDF回复客户端。 响应通过http连接在我的localhost和测试服务器上运行,但不能通过https连接在生产服务器上运行。 我只使用一个简单的BinaryWrite(下面的代码)。 byte[] displayFile = DatabaseFiles.getPdfById(id); Response.ContentType = “application/pdf”; Response.BinaryWrite(displayFile); 这里没什么好看的。 只需获取二进制数据,设置内容类型,然后写回客户端。 有没有什么特别需要做的,以这种方式回复https? 编辑:通过不起作用,我的意思是我在浏览器中得到一个空白文档。 Acrobat无法在浏览器中加载。 编辑:我只是注意到这个问题只发生在IE 7中.PDF 3中的PDF正确加载。我们的客户端专门使用IE 7(优于IE 6,我说服他们升级…大声笑)。 编辑:尝试添加标题“content-disposition”以使文件充当附件。 浏览器无法在SSL下加载IE错误“Internet Explorer无法从ProductionServer.net下载displayFile.aspx”。 (以下代码) byte[] displayFile = DatabaseFiles.getPdfById(id); Response.Clear(); Response.AddHeader(“content-disposition”, String.Format(“attachment;filename={0}”, fileName)); Response.ContentType = “application/pdf”; Response.BinaryWrite(displayFile); 编辑:如果在生产服务器上通过http查看文件,浏览器将显示PDF的代码,就像通过NotePad查看一样。 (例如%PDF-1.4%â€6 0 obj endobj xref 6 33 …等)

如何使用System.Net.Mail为电子邮件添加附件?

我有一个表示为byte []的excel文档,我想将其作为附件发送到电子邮件中。 我在构建附件时遇到了一些麻烦。 我可以创建一个具有以下构造函数的Attachment: (Stream contentStream, ContentType contentType) (Stream contentStream, string name) (Stream contentStream, string name, string mediaType) 我的想法是从byte []创建一个MemoryStream并将其传递给创建附件的方法。 不幸的是,我看不到从MemoryStream获取预期文件名和内容类型的方法,我也看不到如何提供正确的内容类型。 有纯文本,Pdf,Rtf等选项,但我没有看到立即跳出来作为我应该用于Excel文档的那个。 我能找到的最接近的是MediaTypeNames.Application.Octet ,它指出: Octet成员指定附件包含通用二进制数据。 但是,即使这是一个使用的,除非它可以作为Stream的属性传递,那么我的发送电子邮件的方法只能发送一个byte []作为Excel文档… 是否有其他类型的流可以使用? 或者我是否必须创建我自己的Stream类型,其中包含我需要的详细信息。 当然有人在那里做过这件事,当然微软会把这个想到这个级别…. 任何帮助将非常感激。 更新:请不要为使用将文件名作为字符串的构造函数的任何答案投票。 我真的需要帮助使用带有Stream的那些……我想避免将文件写入磁盘,通过电子邮件发送,然后立即将其删除。 既然有一种方法允许我这样做,我想尽可能使用那个。 解决方案更新 康拉德设法找到了我想要的东西! 谢谢堆人! 我只是记录建议的解决方案,以防万一在提供的链接上的内容发生了什么。 这个解决方案归功于www.systemnetmail.com static void AttachmentFromStream() { //create the mail message MailMessage mail = new MailMessage(); //set the addresses […]

如何在C#中获取浮点数的IEEE 754二进制表示

我有一些单精度和双精度浮点数,我想写入并从字节[]中读取。 .Net中有什么东西可以用来将它们转换成32位和64位IEEE 754表示forms吗?