问题标签 [ushort]

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 投票
1 回答
706 浏览

c# - 元帅 ushort[] 通过网络

我创建了 2 个简单的控制台程序和一个简单的结构。

M11 对象是我们要通过网络发送的测试对象。

SimpleSender 将编组对象并通过网络发送。

最后但同样重要的是,接收者将接收字节并转换为对象。

问题是接收程序在调用 Marshal.PtrToStructure 时总是抛出“System.AccessViolationException: Attempted to read or write protected memory”。

需要注意的几点: 1. 它只适用于 MessageHeader。2. ushort 数组具有动态大小。

提前致谢。

亨利

0 投票
2 回答
1971 浏览

java - 将 C# 代码迁移到 Java,无符号短和字节数组转换

我正在用 Java 编写一段代码(我对 Java 还很陌生),我以前用 C# 编写过。这是 C# 中的代码和示例。

我在 .NET 中使用自定义位转换器,因为它默认为小端。无论如何,根据我对 java 的了解,如果我想使用与 byte[] 相同的结果,我应该期望我的值 (170 和 187) 小 128 (Byte.MAX_VALUE + 1) 即 (42, 59) - 由于 .net 和 java 的字节类型范围不同。这是我用 Java 编写的以模仿上述逻辑的内容。

但是,当我调用上面的代码时

结果是 [42, -69] 而不是 [42, 59]。最后一个字节比它应该小了 128。我真的需要一些关于如何正确执行此操作以及我的逻辑是否正确的指示。我也需要对 uint、ulong 等做同样的事情,所以我需要正确理解这一点。

0 投票
1 回答
730 浏览

c# - 为什么异或两个 ushort 值不返回 ushort?

可能重复:
两个字节变量上的 C# XOR 不会在没有强制转换的情况下编译

为什么在此 C# 代码中出现编译错误?

错误 CS0266:无法将类型“int”隐式转换为“ushort”。存在显式转换(您是否缺少演员表?)

0 投票
1 回答
394 浏览

c++ - 使用 SSE 或 SSE3 在 ushort 数组中添加 uchar 值

我有一个无符号短 dst[16][16] 矩阵和一个更大的无符号字符 src[m][n] 矩阵。

现在我必须访问 src 矩阵并使用SSE2SSE3向 dst 添加一个 16x16 子矩阵。

在较旧的实现中,我确信我的总和值永远不会大于 256,所以我可以这样做:

其中 W 是到达所需行的偏移量。此代码有效,但现在我在 src 中的值更大并且总和可能大于 256,因此我需要将它们存储为 ushort。

我尝试了以下方法,但它不起作用。

我怎么解决这个问题?

编辑

谢谢保罗,但我认为你的偏移量是错误的。我已经尝试过您的解决方案,似乎子矩阵的行被添加到了错误的 dst 行中。我希望正确的解决方案是这样的:

0 投票
2 回答
480 浏览

c# - 为什么“int”可以被视为“ushort”,但在作为扩展方法中的参数传递时却不能,什么是优雅的解决方案?

我有这个扩展方法:

现在我需要将上述方法用于ushort. 当我尝试

第一行投到3一口井里ushort。但是当3作为参数传递时,我得到了错误

'ushort' 不包含 'In' 的定义,并且最佳扩展方法重载 'Extensions.In(T, params T[])' 有一些无效参数。

但这有效:

这很奇怪。

  1. 为什么它适用于第二个示例,而不适用于第一个示例?

  2. 有什么好的选择可以在这里帮助我?由于没有文字,short或者ushort我找不到比手动转换每个整数更简单的替代方法,如下所示:

    /li>
0 投票
2 回答
8338 浏览

c# - 字节[] 到 ushort[]

这是我的问题。请耐心等待我做一点解释:

我正在将 tiff 图像读入缓冲区;我的 tiff 的每个像素都由一个 ushort(16 位数据,非负数)表示。

我的图像大小为 64*64 = 4096。当我的 tiff 加载到缓冲区时,缓冲区长度因此为 8192(是 4096 的两倍)。我猜这是因为在我的缓冲区中,计算机使用 2 个字节来存储单个像素值。

我想获取任何特定像素的值,在这种情况下,我应该将每 2 个字节组合成 1 个 ushort 吗?

例如:00000000 11111111 -> 0000000011111111?

这是我的代码:

如何读取 byte[] 缓冲区以确保我可以获得 16 位 ushort 像素值?

谢谢

0 投票
2 回答
17769 浏览

c# - 在 C# 中将 ushort 值转换为两个字节值

如何在 C# 中将 ushort 拆分为两个字节变量?

我尝试了以下(package.FrameID 是 ushort):

当我尝试用纸和铅笔计算时,我得到了正确的结果。此外,如果 FrameID 大于一个字节(因此第二个字节不为零),它可以工作。

在我的情况下 package.FrameID 是 56,array[0] 中的结果是 16 而不是 56。

我怎样才能解决这个问题?

0 投票
6 回答
1583 浏览

c# - 如何在 C# 中快速从另一个数组中减去一个 ushort 数组?

我需要从 ushort arrayB 中具有相同长度的相应索引值中快速减去 ushort arrayA 中的每个值。

另外,如果差为负,我需要存储一个零,而不是负差。

(确切地说,长度 = 327680,因为我要从另一个相同大小的图像中减去 640x512 图像)。

下面的代码目前需要约 20 毫秒,如果可能的话,我希望将其降低到约 5 毫秒。不安全的代码是可以的,但请提供一个例子,因为我在编写不安全的代码方面并不是很熟练。

谢谢!

更新:虽然它不是严格意义上的 C#,但为了其他阅读本文的人的利益,我最终使用以下代码将 C++ CLR 类库添加到我的解决方案中。它的运行时间约为 3.1 毫秒。如果使用非托管 C++ 库,它会在 ~2.2ms 内运行。由于时差很小,我决定使用托管库。

然后我这样称呼它:

0 投票
3 回答
1768 浏览

c# - 声明和初始化列表的更短方法

目前,我正在声明和初始化这样的列表:

例如,我最终将拥有更多ushort包含超过 10 个值的列表,并且键入 1-100 之间的每个数字效率低下。该列表将始终是一个数字范围。

有没有更短的方法来写这个?我试过研究Enumerable.Range,但只处理int值,我收到“无法将类型 int 隐式转换为 ushort”错误。

0 投票
2 回答
2487 浏览

c# - 将 short[] 转换为 ushort[]

我需要在 C# 中将 short[] 转换为 ushort[]

谢谢