问题标签 [bitconverter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 字节 [] 到 ASCII
我收到了以二进制值返回的文本文件的内容:
如何将其转换为 ASCII?
c# - 从有符号整数获取排序顺序字节数组的最快方法
我知道我可以使用 bitconverter.GetBytes 从整数中获取字节。但是,我需要一个数组,可以在其中比较内容的排序顺序。
例如
到现在为止还挺好:
但:
这里没有什么奇怪的。但是将 minusOne 字节数组与 plusOne 字节数组进行比较会说 minusOne 字节数组大于 plusOne (255 > 0)
有没有什么花哨的方法来移位、异或等,这样 Int.Min 会给出 0,0,0,0 而 int.Max 会给出 255,255,255,255 吗?
对困惑感到抱歉 :)
c# - C# BitConverter 问题
Normaly,例如,如果你想在字节数组中表示 5,它会像 {0x00,0x00,0x00,0x05} 但 BitConverter 给我反转数组({0x05,0x00,0x00,0x00})为什么会这样以及我在哪里我错了吗?
vb.net - 读取 MP3 帧头 - 将位值分配给变量
我正在学习visual basic .net,我正在尝试将一些java源代码转换为vb.net项目。项目读取mp3详细信息,然后根据frameheader详细信息等准确分割文件。
我的问题与阅读 mp3 文件的帧头有关。我了解帧详细信息包含在帧的前 4 个(32 位)字节中,某些位表示某些值,如下所述:http: //www.mp3-tech.org/programmer/frame_header.html
使用 FileStream 我已经能够读取这些数据并在文本框中以二进制形式显示它。
我正在寻求帮助来阅读这些位并将它们分配给我班级中的变量。我不确定执行此操作的正确程序是什么,因为某些值的长度为 1、2 或 4 位,例如位 19-20 = MpegType,位 12-15 = BitrateIndex,位 9 = 填充等。
我查看了 codeproject.com 上提供的类似项目,但我不明白他们是如何实现上述目标的。
任何帮助深表感谢。
编辑:
到目前为止,这是主要的子部分,我还没有包含声明变量和属性等的代码。
运行时,富文本框中的输出如下:
我想通读这些位并将适当的值分配给变量,例如
读取同步值的前 12 位。读取 mpegID 值的第 13 位。读取第 14 位和第 15 位以获取 layerID 值等。
希望这更清楚。
java代码如下:
c# - 关于 BitConverter 中的“GetBytes”实现
我发现GetBytes
.net框架中函数的实现是这样的:
我不太确定我是否了解这两行的全部细节:
有人可以在这里提供更详细的解释吗?我应该如何在标准 C++ 中实现这个功能?
c# - 在 Compact Framework 中使用 BitConverter.GetBytes() 进行有趣的观察
我正在尝试使用 BitConverter.GetBytes(...) 方法将浮点值转换为字节数组。我遇到了一个有趣的问题。考虑以下代码 -
上面的转换返回我在控制台上打印的 4 字节数组。但是,我注意到有时 4 个字节的输出是 {0 0 0 128} 而不是 {0 0 0 0}。
有什么帮助吗?
谢谢, 奥姆基
hash - BitConverter.ToInt64 如何处理 32 字节的字节数组(来自 SHA256Managed 的 256 位哈希)
我正在使用 SHA256Managed 生成 256 位哈希,我想将它们存储在 sql server 上。BitConverter.ToInt64 对此有多好?它会忽略额外的字节吗?在转换为 int64 之前,我应该做一些处理来减少字节数组吗?
c# - 改进在 C# 中到二进制和返回的转换
我正在尝试为我正在开发的游戏编写通用套接字服务器。我知道我可以很好地使用 SmartFox 和 Photon 等已经构建的服务器,但我不想经历为学习目的而自己创建一个服务器的痛苦。
我提出了一个受 BSON 启发的协议,将基本数据类型、它们的数组和特殊的 GSObject 转换为二进制,并以某种方式排列它们,以便可以在客户端将它们重新组合成对象形式。在核心,转换方法利用 .Net BitConverter 类将基本数据类型转换为二进制。无论如何,问题在于性能,如果我循环 50,000 次并将我的 GSObject 转换为二进制每次大约需要 5500 毫秒(每次转换的结果 byte[] 仅为 192 个字节)。我认为这对于一个每秒发送 5-10 个位置更新和 1000 个并发用户的 MMO 来说太慢了。是的,我知道一款游戏不太可能同时拥有 1000 个用户,但就像我之前所说的,这对我来说应该是一个学习过程,
所以是的,如果有人知道其他转换技术或看到我在哪里失去性能,我将不胜感激。
GSBitConverter.cs
这是主要的转换类,它为主要数据类型添加了扩展方法以转换为二进制格式。它使用 BitConverter 类来转换基本类型。我只展示了转换整数和整数数组的代码,但该方法的其余部分几乎是这两者的复制品,它们只是重载了类型。
Program.cs 这是我在循环中转换为二进制的对象。
这是上面代码中使用的一些其他类的代码。大部分都是重复的。
c# - 将大端数组转换为 Int64
我使用 System.IO.BinaryReader 从序列化文件中读取数据。该文件是大端。所以我从流中读取 Int64 (long) 的操作是从中读取 8 个字节。我需要做的是将这 8 个字节的大端转换为小端长表示。
我不能使用 System.BitConverter,因为它将使用 Mono 编译以在 Linux 上使用,可以在大端和 Visual Studio for Windows 上运行,它可以在小端上运行。
c# - 想知道如何最好地将检查 IPv4 地址是否在给定范围内的逻辑扩展到 IPv6?
我目前有这种方法来自其他几个 SO 帖子:
尝试扩展此逻辑以支持 IPv6 显然存在一些缺陷。即:
- 我是否需要使用 BigInt 而不是 Int32 来支持更长的字段长度?
- IPv6 地址的表示似乎不容易转换为字节?
只是想知道是否有人对如何解决这个问题有任何建议。