unsigned相关内容

在无符号类型上警告C4146负号运算符

我有我要使用的库中的代码。编译时,出现以下警告: 警告C4146:一元减运算符应用于无符号类型,结果仍为无符号 inline int lastbit(uint32_t v) { int r; static const int MultiplyDeBruijnBitPosition [32] = { 0、1、28、2、29、14、24、3、30、22、20、15、25、1 ..
发布时间:2020-10-06 22:08:48 C/C++开发

一元运算符“-”代表什么在C / C ++(和不同的编译器)中对无符号数据类型做什么?

例如: unsigned int numA = 66; //或任何真正的 unsigned int numB = -numA; unsigned int numC = numA& numB 我了解按位补码运算符可用于获取两者的补码(与+1)。 我问的原因是因为我在国际象棋引擎的某些代码中偶然发现了这一点。国际象棋引擎会做很多“棘手”的事情来获得绝对速度,特 ..
发布时间:2020-10-06 21:25:37 C/C++开发

初始化未签名字符的正确方法*

初始化 unsigned char * 的正确方法是什么?我目前正在这样做: unsigned char * tempBuffer; tempBuffer =“”; 还是我应该使用 memset(tempBuffer,0,sizeof(tempBuffer)); ? 解决方案 第二种方法将给你留下一个空指针。请注意,您此处并未在缓冲区中声明任何空间, ..
发布时间:2020-09-30 22:59:32 C/C++开发

Windows上无符号__int64的printf格式

我需要打印 ULONGLONG 值( unsigned __int64 )。我应该在 printf 中使用哪种格式? 我在另一个问题中发现了%llu ,但他们说这仅适用于Linux。 感谢您的帮助。 解决方案 使用Google搜索“ Visual Studio printf unsigned __int64”会产生此页面作为第一个结果,它表示可以使用前缀 I64 ,因此格式说明符将 ..
发布时间:2020-09-27 05:52:08 C/C++开发

是从C ++中较小的未定义行为中减去较大的无符号值吗?

在下面的程序中,在“积分提升”和“通常的算术转换”之后,运算符-的两个操作数都保持 unsigned long long 。之后,C ++ 11标准说: 5.7.3二进制-运算符的结果是减去从第一个开始的第二个操作数。 标准是否在任何地方更详细地定义了减法的精确执行方式(或引用了其他一些文档) 是否从较小的无符号整数中减去较大的无符号整数会产生未定义的行为,为什么? 是否按 ..
发布时间:2020-09-27 01:47:04 C/C++开发

如何在Java中将有符号的16位整数转换为无符号的16位整数?

我有下面的布局,我需要在其中表示数据,然后最后我需要从中制作一个字节数组。我需要从Java代码中以以下格式表示数据,然后将字节数组发送到C ++程序,C ++程序依次将c ++程序解压缩字节数组并从中提取相关内容- //以下是我的数据布局- // //键类型-1个字节 //键len-1个字节 //密钥(可变大小= key_len) //时间戳(uof64_t的大小) //数据 ..
发布时间:2020-09-25 02:03:55 Java开发

Java SHA-1哈希未签名的BYTE

嗨! 我有以下问题: 我需要在Java中散列一个(将是...)之间的无符号字节0-255。 主要问题是java根本没有unsigned Byte类型。 我找到了解决方法,并使用int而不是byte进行了一些修改。 主要问题是:Java.securitys仅是Messagedigest.digest函数接受字节数组类型,但是我需要给它一个int数组。 有人为此有一个simpe ..
发布时间:2020-09-24 18:50:26 Java开发

Java和无符号字节

我需要使用无符号字节数组。我需要通过网络将某些字符发送到服务器,其中一些字符大于127。 我有一个简化的代码,可以尝试理解概念: int i = 160; 字节j =(字节)i; System.out.println((byte)i); System.out.println(j); ,结果为: -96 -96 我需要打印160。如 ..
发布时间:2020-09-24 18:42:46 Java开发

将无符号字节转换为有符号字节

在Java中是否有一种简单而优雅的方法将无符号字节值转换为有符号字节值?例如,如果我仅有的是int值240(二进制(24位+ 11110000)= 32bits),如何获取该int的带符号值? 解决方案 除 char 外,Java没有未签名的值。考虑以下代码段: byte val =(byte)255; System.out.println(String.valueOf(val ..
发布时间:2020-09-24 18:35:10 Java开发

按位运算的有符号和无符号之间的区别

按位运算的有符号变量和无符号变量之间有区别吗? 例如,当处理无符号数字时: AND 00000111, 00001101 将得到00000101. 但是处理带符号的数字会发生什么? 解决方案 假定2的补码用于有符号数,则关心有符号性的操作(即,对于位串的有符号和无符号解释是不同的)是: 部门 取模 右移 比较(平等除外) 全角乘法(在程序集之外罕见) 与签名无关 ..
发布时间:2020-09-21 05:16:31 其他开发

用BigInteger解释一个无符号负数

是否可以使用Java的BigInteger将负数解析为无符号值? 例如,我将-1解释为FFFFFFFFFFFFFFFF. 解决方案 如果要考虑二进制补码,则必须指定工作位长度. Java long有64位,但是BigInteger没有边界. 您可以这样做: // Two's complement reference: 2^n . // In this case, 2^6 ..
发布时间:2020-09-20 20:22:41 Java开发

在汇编中如何为未签名的int分配负数?

我了解了有关2's Complement的信息,并对其进行了未签名和已签名的int运算.因此,我决定测试我的知识,据我所知,负数是以2's complement的方式存储的,因此加法和减法不会有不同的算法,并且电路也很简单. 现在如果我写 int main() { int a = -1 ; unsigned int b = - 1 ; printf("%d %u \n % ..
发布时间:2020-09-12 22:05:20 其他开发

汇编代码如何知道某个值是带符号的还是无符号的?

当看起来我的代码有时将某个值视为带符号的值而有时将其与比较值时视为无符号的值时,我感到非常困惑.代码如何知道一个值是带符号的还是无符号的? 解决方案 为什么您认为汇编代码必须“知道"值是带符号的还是无符号的? 对于大多数操作,签名操作和未签名操作的结果相同: signed int a = 5; signed int b = -6; // 0xFFFFFFFA signed in ..
发布时间:2020-07-11 00:04:37 其他开发

在size_t中使用负整数是否安全?

我刚刚看到了一些这样的C ++代码.它使用条件来决定是通过std::vector向前还是向后走.编译器没有抱怨,但是我认为size_t是未签名的.这很危险吗? vector v { 1,2,3,4,5 }; bool rev = true; size_t start, end, di; if (rev) { start = v.size()-1; end ..
发布时间:2020-07-07 04:11:33 C/C++开发