Tag: byte

bool *在C#中的用处

我可以用任何有意义的方式使用bool* 。 我如何将bool*转换为例如一个byte ,或者将bool*存储在一个字节中 我的目标是在我的项目中管理自己的记忆,细节并不重要,只是喜欢做的事情。 现在我希望能够存储我自己的变量,我碰巧需要存储一个布尔值。 我如何使用unsafe和byte*存储这个布尔值,并最好地利用我的空间? 理想情况下,在字节中存储4位。

C# – 我可以使用数组初始化器来构建另一个字节数组吗?

我想使用数组初始化程序从另一个字节数组中构建一个字节数组,以及构成标题/尾部的其他一些字节。 基本上,我想做这样的事情: byte[] DecorateByteArray(byte[] payload) { return new byte[] { 0, 1, 2, payload.GetBytes(), 3, 4, 5}; } 不幸的是,上面的GetBytes()是虚构的。 有没有好的/优雅的方式来做到这一点? 我通过使用BinaryWriter将所有内容写入MemoryStream ,然后使用MemoryStream.ToArray()将其转换为字节数组来解决这个问题,但它感觉有点笨重。

C#Byte 到BCD,BCD到INT

我有一个由CashRegister Machine创建的Hex文件。 我必须阅读此文件。 文件使用下面详述的格式。 它就像套接字数据包。 代码数据:2个字节 PLU代码数据:7字节 单价数据:5字节 数量数据:5个字节 总金额数据:5字节 PLU名称数据:18字节 税率数据:1字节 长度:24 + 19 Byte PLU代码格式是BCD 单价1-9999999999(BCD) 数量1-9999999999(BCD最后3个数字应为十进制) 总金额1-9999999999(BCD) 我用二进制读取器读取hex文件,然后在Unit Price字节数组中插入int。 byte[] bytes = { data[21], data[22], data[23], data[24], data[25] }; // BCD Byte Array 这个数组是单价。 但是,如何将此数字转换为十进制数。 并且信息说数量:BCD最后一个数字应该是十进制 – 这是什么意思? 谢谢。

在Windows Phone 8.1中加载,显示,转换来自字节数组(数据库)的图像

完整的问题是如何在Windows Phone 8.1中显示从数据库加载的图像。 图像数据作为字节数组加载(检查 – 加载正常)。 通过指定urisource显示图像工作正常。 Image img = new Image(); img.Source = new BitmapImage() {UriSource = new Uri(“http://www.example.com/1.jpg”) }; rootgrid.Children.Add(img); 但是当字节数组(图像)转换为BitmapImage时 – 没有显示任何内容。 到目前为止我发现的唯一例外免费示例是: public BitmapImage ConvertToBitmapImage(byte[] image) { InMemoryRandomAccessStream ras = new InMemoryRandomAccessStream(); var bitmapImage = new BitmapImage(); var memoryStream = new MemoryStream(image); memoryStream.CopyToAsync(ras.AsStreamForWrite()); bitmapImage.SetSourceAsync(ras); return bitmapImage; } Image img = new […]

在C#中处理大量文件

我有一个4Gb文件,我想执行基于字节的查找和替换。 我已经编写了一个简单的程序来完成它,但是只需要一个查找和替换就需要太长时间(90分钟+)。 我尝试过的一些hex编辑器可以在3分钟内完成任务,并且不会将整个目标文件加载到内存中。 有谁知道我可以完成同样的事情的方法? 这是我目前的代码: public int ReplaceBytes(string File, byte[] Find, byte[] Replace) { var Stream = new FileStream(File, FileMode.Open, FileAccess.ReadWrite); int FindPoint = 0; int Results = 0; for (long i = 0; i Find.Length – 1) { Results++; FindPoint = 0; Stream.Seek(-Find.Length, SeekOrigin.Current); Stream.Write(Replace, 0, Replace.Length); } } else { FindPoint = 0; […]

将dll库从Resource加载到当前域(在主exe文件中嵌入dll)

我正在尝试使用以下代码在运行时加载dll库,这样我就不必为用户提供大量的dll文件以及主要的可执行文件。 我已将所有dll文件作为嵌入式资源包含在内,并且在我已包含它们的参考部分中,并将CopyLocal属性设置为false。 但这里的问题是: 1.所有dll都被复制到Bin \ Debug文件夹 2.我收到了FileNotFoundException 。 我做了很多搜索以解决这些问题,最后我就在这里。 我在这里得到了类似的代码,但仍然无法做任何事情。 我应该怎么做才能防止这种exception……? 是否有更好的方法为Windows窗体应用程序(不是WPF)做同样的事情…… ?? using System; using System.Linq; using System.Windows.Forms; using System.Diagnostics; using System.Reflection; using System.Collections.Generic; using System.IO; namespace MyNameSpace { static class Program { static int cnt; static IDictionary assemblyDictionary; [STAThread] static void Main() { AppDomain.CurrentDomain.AssemblyResolve += OnResolveAssembly; if (cnt != 1) { cnt = […]

C# – 读取字节,它们是什么以及发生了什么。 我希望二进制值,而不是十进制数

我已经做了几年的程序员,但我从来没有理解涉及字节的低级操作。 然而,它让我感兴趣,我想更多地了解使用字节。 在下面的代码中,我正在阅读一个只包含单词“hi there”的文本文件。 FileStream fileStream = new FileStream(@”C:\myfile.txt”, FileMode.Open); byte[] mybyte = new byte[fileStream.Length]; fileStream.Read(mybyte, 0, (int)fileStream.Length); foreach(byte b in mybyte) Console.Write(b); Console.ReadLine(); 在这种情况下,mybyte变量包含似乎表示ASCII十进制对应项的数值。 但是,我通过字节表示位,这反过来又代表二进制值。 当读取一个字节时,我希望看到像’0001010’这样的二进制值,而不是’104’,这是’h’的ascii字符。 在读取图像的情况下,当将图像读入字节数组时,我再次看到数组中的数字,并且从低级别的persepctive我会期望二进制值。 我知道这些数字显然没有映射到Ascii,但是我很困惑为什么当读取字符串时它们会映射到ascii数字并且在读取图像流时它会做其他事情(我实际上不确定数字代表什么在阅读图像的情况下)。 我知道理解数字在字节数组中的含义并不重要,但它让我非常感兴趣。 当从文本文件中读取和读取二进制文件(即图像)时,是否有人可以了解.net框架中的字节。 谢谢 此图像是保存从myfile.txt读取的文本“hi there”的字节数组 该图像是保持图像流的字节数组

从C ++到C#的zlib(如何将byte 转换为流并将流转换为byte )

我的任务是使用zlib解压缩数据包(已接收),然后使用算法从数据中生成图片 好消息是我有C ++代码,但任务是在C#中完成 C ++ //Read the first values of the packet received DWORD image[200 * 64] = {0}; //used for algoritm(width always = 200 and height always == 64) int imgIndex = 0; //used for algoritm unsigned char rawbytes_[131072] = {0}; //read below unsigned char * rawbytes = rawbytes_; //destrination parameter for decompression(ptr) compressed […]

将“1.5TB”,“500MB”转换为单个文件大小的单位

我想允许用户使用任何标准后缀(例如TB,MB,GB)输入文件大小 我希望以一种可以将它们与文件夹大小进行比较的方式获取值。 我们的想法是让一个程序在文件夹超过一定大小时发出警告,其大小由用户输入的字符串决定。 .net框架中是否有任何内置允许我解析1.5TB , 400GB , 1.9GB和0.5KB等0.5KB ?

在C#中转换为字节

可能重复: 在C#中从short转换为byte时会发生什么? 有人可以解释在将值转换为字节时发生的情况,如果它超出最小/最大字节的范围吗? 它似乎取整数值并用255模数。我试图理解为什么这不会抛出exception的原因。 int i = 5000; byte b = (byte)i; Console.WriteLine(b); // outputs 136