问题标签 [unsigned-integer]
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++ - 在 sqlite3 语句中绑定“无符号长”(uint64)?C++
我正在使用sqlite.org上提供的 sqlite3 库。
我有一些未签名的 long 想要存储在数据库中。我不想自己构建查询并将其留给某种注入(无论它是否是偶然的)。因此,我正在使用这些sqlite_bind_*
函数来“清理”我的参数。
问题是无符号长整数没有函数类型,只有整数。
int sqlite3_bind_int(sqlite3_stmt*, int, int);
int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);
如果我无法以无符号方式存储它们,我肯定会有数字溢出。
我需要自己管理吗?(即从数据库中选择后转换为无符号类型或在插入数据库之前转换为有符号类型)
如果我必须自己进行管理,那么当比较实际上是在无符号范围内时,如何进行一些存储为有符号长整数的比较查询?
查看被转换的INTEGER 数据类型,人们会认为 unsigned long 可以毫无问题地表示。
如果有其他解决方案,请赐教!谢谢!
c++ - C++:仅使用无符号类型时有符号/无符号不匹配
当我尝试使用启用了警告级别 /W4 的 Visual Studio 2010 C++ 编译器 (X86) 编译以下 C++ 程序时,我在标记的行处收到有符号/无符号不匹配警告。
这让我很困惑,因为我只使用无符号类型。由于比较
没有引起这样的警告,它可能与这里发生的一些奇怪的隐含对话有关。
因此:我收到此警告的原因是什么以及此对话发生的规则是什么(如果这是原因)?
c++ - “unsigned long int”和“unsigned long long int”分配问题
几周前,我第一次使用(我不习惯使用它们)floats,doubles,比较操作数有一些问题。我在尝试为这些类型分配值时也遇到了问题,但我也解决了它......
今天,我在用 C++ 做一个库,我发现了一个错误……嗯……奇怪?还是只是我的愚蠢想法?
这是代码:
}
可能已经创建了ini库,并且比我的要好得多。但是我开始从 C 学习 C++,我想练习一些有趣和有用的东西。我错过了类声明,我不知道是否有必要将它粘贴在这里,但这里是:
经过几次“测试”,我终于发现问题出在“f_size”变量中。为什么?不知道。但是,如果我将它打印到标准输出,它会显示一个非常大的数字。这就是内存分配(使用 malloc)错误以及从文件读取(或使用 memset 初始化)时的后续错误的问题。
非常感谢您的帮助。和链接、参考或解释让我看到我的错误,并继续学习。
谢谢!
PS:我在 Linux Debian“挤压”中使用 g++,amd64。
php - 32 位系统的 INT 最大大小
让我们假设我们正在谈论 32 位系统。
PHP 不支持无符号 INT。这意味着 INT 值应介于 -2,147,483,648 和 2,147,483,647 值之间。INT 需要 4 个字节来存储一个 32 位长度的值。
那么这是否意味着我只有 31 位的值和 1 位的符号?或者我可以使用整个 32 位来存储一个值?
c++ - C ++:有符号64位整数中两个无符号64位整数的差异
我正在尝试用 C++ 编写一个函数,该函数采用两个 64 位无符号整数并以有符号 64 位整数返回它们的差异。由于溢出情况,这似乎有点复杂 - 由于输入是两个无符号正整数,如果这两个之间的绝对差大于最大有符号值(INT64_MAX),则该差不能通过有符号整数传输。所以我写了下面的实现,我想知道,首先,这在功能上是否正确,其次,是否有更简单的实现。任何建议将不胜感激。谢谢!(我将用异常替换断言,它现在就在那里!)
java - java:将再见数组字节[1000]转换为数组int[500]的最快方法
目标是将每对字节转换为单个无符号 16 位 int。在 CI 中将定义一个 16 位 unsinged int 指针的数组 [500] 并将其指向字节数组,但在 java 中我不知道这样的捷径。我知道在 Java 中除了 char 之外没有 16 位数据类型,但这不是问题。我们只需要将每两个连续的两个字节复制到一个整数数组的单个 int 中。因此整数数组保存的 int 值范围从 0 到 65535 (2^16-1)。
c - 将扫描的十六进制 (scanf) 从无符号整数数组转换为十进制
我在这里尝试将 4 位数的 hexa 转换为 dec 但没有成功。这是我的代码。
我不知道它有什么问题,但它不会给出正确的 dec 输出。就像我输入 EEFF 时,它应该给出 61183 但程序继续打印出 65518。
这个号码是哪里来的?我的代码有什么问题?根据我的考虑,我使用 unsigned int FFFF 等于 65385,unsigned int 的范围是 0 到 65535。数据范围应该没有问题,我也使用了 %u。
在我进行了一些搜索之后,我现在唯一能想到的就是这个问题可能与 unsigned int 到 int 或 sth 的大小有关。我读了解释,但不太明白。
我知道,这可能是重复的,但我在这里要求更简单地解释为什么这不起作用。老实说,我对这个网站和编程都是一个绝对的新手,所以请对我进行轻松的编码。仅供参考,我真的不知道 stdio.h 之外的任何东西。
c++ - C++ for 循环中的无符号整数
我对 Stackoverflow 进行了一些关于 C++ 中使用无符号整数而不是有符号整数的反向循环的研究。但我仍然不明白为什么会出现问题(请参阅Unsigned int reverse iteration with for loops)。为什么下面的代码会产生分段错误?
我知道问题是什么时候索引 i 将等于零,因为有类似溢出的东西。但我认为允许无符号整数取零值,不是吗?现在如果我用有符号整数替换它,绝对没有问题。
有人可以用无符号整数向我解释那个反向循环背后的机制吗?
非常感谢你!
c++ - Unsigned Int 溢出
unsigned int
当我溢出它时会包含什么?具体来说,我想用两个unsigned int
s 做一个乘法:unsigned int
乘法完成后会是什么?
c++ - 如何通过引用或指针将 `int` 和 `unsigned int` 成员传递给同一个函数?
我有一个 20-30 行的 C++ 函数,它引用了一个int
可能的更新。现在我将传递给它的成员替换为封装更多数据的成员的成员,例如:
我想将此修改本地化为上面调用的行和函数,因为一旦我验证了等价性及以上,就应该删除旧成员。
这可以通过简单的演员表实现吗?
如果你想要代码:
和最近添加的成员: