问题标签 [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.

0 投票
2 回答
144 浏览

c# - C# - 不同类型的字节表示不同吗?

我知道问题有点奇怪,我只是出于好奇而问,因为我找不到任何相关信息。另外,请随意编辑标题,我知道它很糟糕,但无法弥补。

假设我有一个对象类型的变量 foo,它要么是短的,要么是 ushort。我需要通过网络发送,所以我使用 BitConverter 将其转换为 byte[]:

网络/套接字魔法发生了,我想要我的变量。我知道我期望得到的类型,所以我正确地调用了 BitConverter.GetUInt16 或 GetInt16。

现在,问题是 - 我如何序列化变量真的很重要吗?我的意思是,位是相同的,所以它不应该有任何意义,对吗?这样我就可以

然后做

任何人?

0 投票
2 回答
58741 浏览

c - 在C中将十六进制转换为字符串?

你好我正在使用digi动态c。我正在尝试将其转换为字符串

目前,当我做printf陈述时,它必须是这样的:

但我想要这个字符串,所以我可以使用printf这样的语句

我本质上是通过 TCP/IP 端口发送 readingreg 数组,为此我需要将其作为字符串。我似乎无法将其转换为字符串。谢谢你的帮助。此外,如果有人可以告诉我如何一次处理每个元素而不是整个数组,那很好,因为只有 4 个元素。

0 投票
1 回答
903 浏览

c - sprintf 没有给出预期值

我有一个用十六进制数字填充的数组(readingreg [4])。我的目标是将数据类型转换为字符串。我已经阅读了一些建议,似乎 sprintf 是要走的路。

这是我尝试过的:

这是我的输出:

在这一点上,我对 sprintf 为我做了什么感到很困惑。我的预期输出是 server0 - server4 都保留了它们的字符串值。知道为什么会这样吗?

这是该程序的简化版本:

完整的程序有 1000 多行代码,所以我提供的应该足以编译和运行。

0 投票
3 回答
1533 浏览

c# - 使用 C# 中的 BitConverter 类将字节数组转换为十六进制值?

我正在尝试使用Bitconverter类将 a 转换byte arrayhexadecimal值。

现在如果我逐行执行上面的代码,这就是我看到的

在此处输入图像描述

我认为hexResult字符串将与hexValue相同(即 780B13436587h),但我得到的是不同的,我是否遗漏了什么,如果我错了,请纠正我。

谢谢!

0 投票
2 回答
2665 浏览

c# - BitConverter.IsLittleEndian = false 时的字节顺序

我使用尽可能少的字节数以字节等效格式存储数字。在 65535 到 16777215 的范围内,BitConverter 给了我一个 4 字节的数组,但我只想存储 3 个字节。

对于下面的代码,我的数组是[0]254、[1]255、[2]255、[3]0,所以我可以去掉字节[3]。这是在Core i7 proc上。在我的生产代码中,在数组复制之前,我正在检查 BitConverter.IsLittleEndian 以确定我可以截断最后一个字节。

我的问题是 - 我是否需要关注系统的字节序,或者 CLR 是否只使用这种 LittleEndian 格式?我没有 BigEndian 系统(甚至不知道如何获得)来测试我的字节数组是否以相反的顺序出现。

0 投票
3 回答
719 浏览

c# - 8 字节数组回长(C# 到 C++)

我正在使用 C# 将 long 转换为 8 槽字节数组

Byte[] Data = BitConverter.GetBytes(data.LongLength);

例如,如果data.LongLenght是 172085,我得到以下数组 { 53,160,2,0,0,0,0,0 } 但是在我将它发送到我的 c++ 服务器之后,我想再让它变长。

我试过这个但没有成功......

0 投票
0 回答
230 浏览

.net - 在 .NET 中将字节数组转换为人类可读的字符串,反之亦然

由于使用Convert.ToBase64StringConvert.FromBase64String可能会导致内存不足异常,当输入非常大的字符串时。

在 .NET 中是否有另一种方法可以将字节数组转换为人类可读的字符串,反之亦然?

0 投票
3 回答
8059 浏览

c# - C++ equivalent of BitConverter

I'm trying to read the PE headers of a file to get some information. For .NET and C#, I'm using BitConverter to convert the Byte array obtained after having read the file to an integer equivalent. I wish to do the same with C++, but am not sure of the best approach. I'm using an unsigned char array as the Byte array equivalent.

The code is given below..

I'll be using the O/P to query the PE header for information. Need the equivalent of BitCOnverter here. and hopefully it will work.

UPDATE : Thanks for the replies. As suggested I'm trying to use the cast, to convert the character array into Int, to read the PE Header, but it's giving me an access violation Unhandled exception. This is the full code, the file is valid and is being read. I tried with debug, and Optimization disabled, but to no avail.

Kindly advise.

Thanks a lot.

0 投票
1 回答
802 浏览

c# - 转换为浮点数

我有两个 ushort 整数。整数:2206,41247

我想转换为浮动这个整数。为了这;

我在 Linqpad 中编写了一些代码。此函数结果为9,547158E-34

但在Modbus Poll程序中,这个整数转换为0 。

我使用 Modbus 协议从远程设备读取这些整数。正确值为0

我的问题; Modbus Poll 程序如何将此整数转换为浮点数?价值怎么可能为零?

任何想法 ?

0 投票
1 回答
1083 浏览

c# - C# 中用于将浮点数转换为十进制的溢出异常

Convert.ToDecimal(float number here)调用时出现溢出异常。我正在读取字节字符串并希望将字节数组转换为十进制数。

即使我设置约束来检查浮点数是否太大/太小/到无穷大以进行转换,代码仍然会以捕获异常结束...