首页 文章
  • 67 votes
     answers
     views

    签名/未签名比较

    我试图理解为什么下面的代码不会在指定的地方发出警告 . //from limits.h #define UINT_MAX 0xffffffff /* maximum unsigned int value */ #define INT_MAX 2147483647 /* maximum (signed) int value */ /* = 0x7fffffff */ in...
  • 5 votes
     answers
     views

    QVariant签名/未签名比较

    Qt Framework的QVariant类型提供了比较运算符 <, <=, >, >= ,但它们在有符号/无符号整数参数不匹配时工作意外: QVariant(-1) < QVariant(0u) yields false QVariant(0u) > QVariant(-1) yields false 有人知道这是一个bug,还是这个?这个运算符总是在sin...
  • 0 votes
     answers
     views

    从unsigned long int转换为signed int,反之亦然

    我想将一个带符号的int传递给 gsl_rng_uniform_int (const gsl_rng * r, unsigned long int n) . 我传递的signed int大于或等于零 . 该函数将在 0 和 n 之间返回一个数字,所以如果我传递一个正的signed int,它将返回一个在signed int范围内的东西 . 然后我想将返回值存储在signed int中 . 什么'...
  • 2 votes
     answers
     views

    在C#中将带符号整数添加到unsigned

    即使听起来很简单,C#也很难将有符号整数(偏移量)添加到无符号值: unsigned uintValue; int offset; // ... uintValue += offset; // causes error CS0266 这可以通过将偏移量转换为有符号值来完成,但这对我来说看起来有点不安全和危险,如果偏移量比 uintValue 小,那么风险很大 . 对于这个简单的问题,是否有一个优...
  • 2 votes
     answers
     views

    使用ruby将存储为signed的无符号整数转换回原始值

    一个C程序将它认为是64位无符号整数的东西放入Postgres数据库中的一个列,该数据库被输入为int8 . 对于Postgres,int8始终是'signed int8'(没有像'unsigned int8'那样) . 所以我的Ruby程序显示从该空间的上半部分中的Postgres检索到的数字为负数 . 在Ruby中,采用-ve整数并将其转换为C程序员打算使用的64位无符号整数的正确方法是什么?...
  • 0 votes
     answers
     views

    有符号和无符号整数?

    有人可以向我解释这两个因为我必须在我的任务中给出解释 . 我知道正常的整数当然是什么,并使用以下内容来描述它: “整数是一个整数,可以是正数,负数和零但不能有小数点 . ” 但我只是不确定签名和未签名 . 谢谢
  • 0 votes
     answers
     views

    使用INET_ATON存储IP - 有符号或无符号整数?

    是否有必要使用 unsigned 整数列来存储MySQL中的IP(v4)地址(已使用 INET_ATON 转换)? 我自发会认为它确实无关紧要,因为无论字段如何定义,都将使用相同的数据将其转换回 INET_NTOA . 因此,唯一的区别是,在一种情况下,您在数据库中看到负数,而使用无符号时,您会看到(完全)不同的正数,而实际数据在两种情况下都相同,只是表示因字段定义而异, 那是对的吗?
  • 3 votes
     answers
     views

    如何避免gcc警告简单的“char”:“unsigned char”或“signed char”转换?

    我的默认字符类型是gcc选项(-funsigned-char gcc)中设置的“unsigned char” . 所以当我在代码中需要“unsigned char”时,我可以使用“char” . 但我收到警告(char *)和(unsigned char *或signed char *)之间的转换: "error: pointer targets in passing argument ...
  • 3 votes
     answers
     views

    clang:make char默认签名

    我必须使用clang编译一个大的c库 . 该库假定“char”已签名 . 有没有办法告诉clang编译器?对于此编译器,char在x86上签名,但在arm目标上未签名 . gcc有两个选项可以使char签名或无符号 . 对于clang,我只发现/ J开关的工作方式与此情况下相反 .
  • 5 votes
     answers
     views

    带有模数运算符的无符号溢出

    我在编写的一些c代码中遇到了一个错误,虽然它相对容易修复,但我希望能够更好地理解它背后的问题 . 基本上发生的事情是我有两个无符号整数(实际上是uint32_t),当应用模数运算时,产生一个负数的无符号等价物,一个已被包裹的数字,因此是“大” . 这是一个示例程序来演示: #include <stdio.h> #include <stdint.h> int main(in...
  • 9 votes
     answers
     views

    大多数签名/未签名警告的可接受修复?

    我自己确信,在一个项目中,我正在研究有符号整数是大多数情况下的最佳选择,即使其中包含的值永远不会是负数 . (更简单的循环反转,更少的错误机会等,特别是对于只能保持0到20之间的值的整数,比如20 . ) 出错的大多数地方是std :: vector的简单迭代,过去常常是一个数组,之后变为std :: vector . 所以这些循环通常如下所示: for (int i = 0; i < s...
  • 2 votes
     answers
     views

    代表C shift在Java中留下了signed char和unsigned char

    我试图将一些C代码移植到Java中,并且一直在努力解释转换的顺序,运算符优先级,并确保结果符合我的预期 . 我已经阅读了很多帖子,并且认为我已经弄明白了但是我想确定我已经正确地表达了它 . original C code我想尝试移植是这样的: UInt32 _strtoul(char *str, int size, int base) { UInt32 total = 0; int...
  • 16 votes
     answers
     views

    为符号值分配给无符号整数时,为什么编译器没有给出错误? - C

    我知道unsigned int不能保持负值 . 但是以下代码编译时没有任何错误/警告 . unsigned int a = -10; 当我打印变量a时,打印出错误的值 . 如果无符号变量不能保存有符号值,为什么编译器允许它们编译而不给出任何错误/警告? 有什么想法吗? Edit 编译器:VC编译器 Solution 需要使用警告级别4 .
  • 8 votes
     answers
     views

    如何将无符号的32位整数转换为MySQL或PHP中的签名?

    我在PHP中有一个字符串(来自某些数据源),它表示格式化的无符号32位整数 . 我需要将它作为带符号的32位整数存储到MySQL数据库中,以便稍后我可以从PHP检索它并将其用作(可能为负)有符号整数常量(因为PHP没有无符号整数) . 所以,我需要的是一种转换方法,无论是PHP还是MySQL . 它不应该依赖于平台(没有endian / 32/64位问题) . 我知道如何使用MySQL将有符号整数...
  • 1 votes
     answers
     views

    作为签名整数的时间

    我一直在阅读Y2038 problem,我明白 time_t 最终将恢复到最低可表示的负数,因为它会尝试"increment"符号位 . 根据该Wikipedia页面,无法将 time_t 更改为无符号整数,因为它会破坏处理早期日期的程序 . (这是有道理的 . ) 但是,我不明白为什么它首先没有成为无符号整数 . 为什么不将1970年1月1日存储为零而不是一些荒谬的负数?
  • 3 votes
     answers
     views

    为什么AND数字在签名和未签名的演示文稿之间转换?

    下面的代码显示一个以十六进制格式存储为Java字节值的数字,以及有符号和无符号表示形式 . 这可能不是正确的措辞 . 我的意思是,这些数字可以是C风格的1字节无符号字符值 . 如果我正在解释这些值(这里恰好是Java,但可能使用任何语言中的任何有符号类型),那么如果'number'溢出使用符号位,则数字将显示为负数 . 但是我可以通过ANDFF和0xFF在无符号解释中打印 . 我理解AND是如何工...
  • 85 votes
     answers
     views

    无符号整数减法是否定义了行为?

    我遇到的代码来自一个似乎认为在结果为负时从另一个相同类型的整数中减去无符号整数的问题 . 因此,即使它恰好适用于大多数体系结构,这样的代码也是不正确的 . unsigned int To, Tf; To = getcounter(); while (1) { Tf = getcounter(); if ((Tf-To) >= TIME_LIMIT) { br...
  • -3 votes
     answers
     views

    C中的有符号和无符号整数

    我已经编写了这个程序作为练习,以了解有符号和无符号整数如何在C中工作 . 此代码应该只打印 -9 添加 -4+-5 存储在变量 c #include <stdio.h> int main (void) { unsigned int a=-4; unsigned int b=-5; unsigned int c=a+b; printf("result is %u\n...
  • 342 votes
     answers
     views

    签名与无符号整数

    我是否正确地说有符号和无符号整数之间的区别是: 无符号可以保持较大的正值,而不是负值 . 无符号使用前导位作为值的一部分,而带符号版本使用最左位来标识数字是正数还是负数 . 有符号整数可以包含正数和负数 . 还有其他差异吗?
  • 34 votes
     answers
     views

    无符号和有符号整数的比较运算

    请参阅此代码段 int main() { unsigned int a = 1000; int b = -1; if (a>b) printf("A is BIG! %d\n", a-b); else printf("a is SMALL! %d\n", a-b); return 0; } 这给出了输出:a是SMALL:1001 我不明...
  • 1114 votes
     answers
     views

    如何确定Python变量的类型?

    如何查看变量的类型,无论是无符号32位,带符号16位等等? 我该如何看待它?
  • 0 votes
     answers
     views

    vhdl中的信号应该是有符号/无符号的,以执行算术运算吗?

    我正在练习一些基本的vhdl程序 . 现在我遇到了算术运算 . 我使用了bit_vector并直接乘以输入信号,但它错误 "No feasible entries for infix operator" . 程序如下: entity multiplier is port(a,b : in bit_vector(3 downto 0); c: out bit_vec...
  • 5 votes
     answers
     views

    为什么C编译器不能以直观的方式进行签名/无符号比较[关闭]

    “直觉”我指的是 int a = -1; unsigned int b = 3; 表达式 (a < b) 应该评估为1 . Stackoverflow上有很多问题已经问过为什么在这个或那个特殊情况下C编译器会抱怨签名/无符号比较 . 答案归结为整数转换规则等 . 然而,在比较有符号整数和无符号整数时,为什么编译器必须如此格外愚蠢似乎并不存在 rationale . 使用上面的声明,为什么...
  • 2 votes
     answers
     views

    VHDL - 需要一些关于除法和乘法的建议

    SO用户, 我正在尝试校准一个我从ADC读取值的电阻式湿度传感器 . ADC输出8位值 . 我使用的Vref值为5V . 校准的第一步是将数字除以255并乘以Vref值 . 因此,校准值=(输出/ 255)* Vref . 现在,在VHDL中,我是一个问题 . 它在这里; VHDL divide two unsigned numbers 现在,在我的VHDL文件中,我有8位ADC值(湿度),我已...
  • 1 votes
     answers
     views

    由于其范围,使用unsigned char而不是char

    我一直在研究一个小的纯C客户端应用程序(我的第一个:/),它使用TCP套接字与服务器进行通信 . 服务器向我发送一个数据包(C结构),其中第一个字节包含数据包的大小 . 问题是服务器使用unsigned char来表示数据包的大小,因为char已签名(从-128到127)而127不足以表示某些数据包中最多可达255的大小 . =>我需要一个unsigned char缓冲区; 在Linux中...
  • 1 votes
     answers
     views

    “无符号”类型转换需要在顺序过程灵敏度列表中输入

    我在VHDL顺序过程中有一个地址计数器 . 其空闲值在配置寄存器中设置为某个最大值;之后,只要它进入某个状态,它就应该增加一个 . 为了获得最大值,我将输入std_logic_vector的子集声明为别名 . 我将address_int声明为无符号变量 . 然后,我在灵敏度列表中使用clk和重置定义了一个顺序过程 . 当复位被置位时,地址计数器被设置为别名值 . 复位释放后,当处于某种状态时,计数...
  • 347 votes
     answers
     views

    为什么Java不支持无符号整数?

    为什么Java不包含对无符号整数的支持? 在我看来,这是一个奇怪的遗漏,因为它们允许人们编写不太可能在意外的大输入上产生溢出的代码 . 此外,使用无符号整数可以是一种自我文档形式,因为它们表明unsigned int意图保留的值绝不应该是负数 . 最后,在某些情况下,无符号整数对于某些操作(例如除法)可能更有效 . 包含这些内容的不利之处是什么?
  • 287 votes
     answers
     views

    如何在C中打印“unsigned long”?

    我永远无法理解如何在C中打印 unsigned long 数据类型 . 假设 unsigned_foo 是 unsigned long ,那么我尝试: printf("%lu\n", unsigned_foo) printf("%du\n", unsigned_foo) printf("%ud\n", unsigned_foo...
  • 4 votes
     answers
     views

    解释用C签名的无符号(长整数)int

    在Arduino C: 我想重新解释无符号长整数的32位作为有符号长整数 . 完全相同的位,仅被视为2的补码整数,而不是无符号整数 . 我不认为简单地将它投射到(长)就可以了 . 我错了吗? 或许还有更好的方法 . 我使用unsigned long作为计时器 . 偶尔我会读取它的当前值并将其与之前的读数(两个无符号长度)进行比较,以查看已经过了多长时间 . 我需要处理一个可能的溢出,这会导致当前值...
  • 263 votes
     answers
     views

    在Java中声明unsigned int

    有没有办法在Java中声明unsigned int? 或者问题也可以这样构成:Java等同于unsigned? 只是告诉你我正在研究Java的 String.hashcode() 实现的上下文 . 如果整数是32 unsigned int,我想测试碰撞的可能性 .

热门问题