问题标签 [int32]

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 投票
3 回答
710 浏览

c# - 将 Int32 转换为 ushort 并再次返回

我正在尝试设计一个将大于 65535 的整数值打包到 ushort 中的系统。让我解释。

我们有一个系统,它使用 SQL Server 的 IDENTITY 列生成 Int32 值,并受到生产中客户端 API 的限制,该 API 将我们的 Int32 ID 溢出到 ushorts。幸运的是,客户端在任何给定时间只有大约 20 个具有这些 ID 的事物实例(我们称它们为包),并且它只需要使它们在本地兄弟姐妹中是唯一的。普遍接受的解决方案是将我们的 Int32 ID 转换为 ushorts(不,我不是指强制转换,我的意思是翻译),然后再将它们传输给客户端,但是这种方法存在一些问题:

  1. 由于未过期,某些小于 65535 的 ID 可能随时在给定客户端上运行。
  2. 我们不能有任何 ID 冲突 - 也就是说,如果包 ID 1 发送到客户端,则跟踪从 Int32 中删除 65535 多少次以在应用于 65536 时进行 ushort 的算法也会导致 1 从而导致冲突。
  3. 我们必须能够在返回时将 ushort 重构为 Int32。

我们可以用来解决这个问题的是一个单一的有符号字节字段,它会回显给我们并给我们 127 个值来玩(实际上是 117,因为我们使用 0-9 来做其他事情)。从这里开始,我将其称为“字节字段”。

我们已经讨论了三种不同的翻译例程:

  1. 乘法:在字节字段中存储我们从 Int32 中删除 65535 以制作 ushort 的次数。这具有如上所述的碰撞问题。
  2. 序列化会话状态:对于每个客户端,根据有关该客户端的事实生成一个会话 ID。然后存储一个从 1 到交付的包裹数量的 1:1 转换表,这样当客户端再次访问我们的服务器时,可以将包裹清单转换回它们已知的数据库 ID。这存在开销问题,因为我们要将序列化会话状态备份到数据库,并且我们希望每秒支持数百到数千个事务。
  3. 各种算法方法,其中字节字段是转换算法的 ID,该算法采用 Int32 并将其转换为 ushort。显然,其中许多将是简单的乘法(以增加我们可以转换的 ID 上限),但有些必须乘以较小的边界(如 32768),并加上/减去一个数字才能接近可以保证在兄弟姐妹中唯一的数字。这种方法是处理器密集型的,但应该允许我们在保持可扩展性的同时避免冲突(尽管使用这种方法,我们有一个有限的上限,在 ushort 问题由于升级而自行消失之前无法达到)。

所以我的问题是:有没有比我上面的方法更好的方法,如果没有,我应该在算法方面寻找什么(对于方法#3),当给定数字大于0 并且不能是单向哈希?

澄清:最大的问题不是 ushort 上限,而是客户端 API 使用 ushort,所以我无法组合客户端上的字节字段以获得更大的值(客户端 API 不可升级,但最终会逐步淘汰)。

0 投票
8 回答
7184 浏览

c# - 在 C# 中,使用 UInt32 与 Int32 是否存在显着的性能差异

我正在将现有应用程序移植到 C# 并希望尽可能提高性能。许多现有的循环计数器和数组引用被定义为 System.UInt32,而不是我会使用的 Int32。

使用 UInt32 和 Int32 有什么显着的性能差异吗?

0 投票
3 回答
76836 浏览

c# - 64 位 PC 上的 int.MaxValue 是什么?

这条线给了我答案,2,147,483,647因为我有一台 32 位 PC。

答案在 64 位 PC 上是否相同?

0 投票
1 回答
2245 浏览

wpf - WPF:System.Windows.Int32Rect ---> System.Windows.Int32Point?

您知道 System.Drawing.Rectangle 是如何被 System.Windows.Int32Rect 取代的吗?(就非浮点形状而言......)

整数点或大小是否有类似的新对象?如果没有,我将只使用 System.Drawing - 但这似乎是两个平台的小混合,对我来说不应该混合。

无论如何,您对此有何看法?

0 投票
2 回答
5947 浏览

c# - C# int、Int32 和枚举

如果intInt32为什么的同义词

...不编译?然而

即使将光标悬停在 int 单词上也会显示 struct System.Int32?

0 投票
8 回答
1189 浏览

c# - int 或 uint 或什么

考虑这个

我对以下内容感到困惑

  • (1) int 怎么能保持值 -2147483646 ?(整数范围 = -2,147,483,648 到 2,147,483,647)
  • (2)为什么这个打印 -2147483648 而不是 2147483648 (编译器应该决定更好的类型,因为 int 范围超过)
  • (3)如果它在某处转换,为什么 n.GetType() 给出 System.Int32 ?

编辑1:更正:现在你会得到我正在得到的。(对此感到抱歉)

变量 n = i + 1; 至

变量 n = i + 3;

Edit2:还有一件事,如果它溢出,为什么不引发异常?

补充:当溢出发生时,设置类型是不是不对

变量 n

相应地声明var n = i + 3;另一种类型?


欢迎你提出一个更好的标题,因为这对……至少我没有意义

谢谢

0 投票
5 回答
70534 浏览

.net - Int32 和 UInt32 有什么区别?

Int32和 和有什么不一样UInt32

如果它们与容量范围功能相同,那么问题是出于什么原因UInt32创建的?我什么时候应该使用UInt32而不是Int32

0 投票
1 回答
2769 浏览

c# - Ascii 字节数组到 Int32 或 Double

我正在重写库,其任务是使其完全免费分配。目标是在应用程序的启动阶段完成后拥有 0 个集合。

以前有很多这样的调用:

我相信这是分配一个字符串。我找不到可以自动执行相同操作的 C# 库函数。我查看了 BitConverter 类,但看起来只有当您的 Int32 使用代表它的实际字节进行编码时。在这里,我有一个字节数组,表示代表 Int32 的 Ascii 字符。

这就是我所做的

有谁知道已经以更优化的方式执行此操作的 C# 库函数?或改进以使上述运行更快(可能在白天被调用数百万次)。谢谢!

0 投票
6 回答
3762 浏览

c# - 确定小数是否可以存储为 int32

我正在做一些自定义序列化,为了节省一些空间,如果可能的话,我想将小数序列化为 int。性能是一个问题,因为我正在处理大量数据。我目前使用的方法是:

这可以改进吗?

0 投票
8 回答
2568 浏览

c# - Min and Max value of integral type in C#

Whats the mathematical formulae to calculate the MIN and MAX value of an integral type using your calculator. I know you can use Integer.Max or Integer.Min etc or look it up on msdn however I want to know how to calculate it.