标签: unsigned

Objective C中意外的循环

我有这个代码:

unsigned int k=(len - sizeof(MSG_INFO));
NSLog(@"%d",k);
for( unsigned int ix = 0; ix < k; ix++)
{
    m_pOutPacket->m_buffer[ix] = (char)(pbuf[ix + sizeof(MSG_INFO)]);
}
Run Code Online (Sandbox Code Playgroud)

问题是,当:

len = 0 and sizeof(MSG_INFO)=68;
k=-68;
Run Code Online (Sandbox Code Playgroud)

这个条件进入for循环并持续无限次.

unsigned objective-c

0
推荐指数
1
解决办法
172
查看次数

为什么短*而不是char*为字符串?char*和unsigned char*之间的区别?

正如标题所说,我有两个问题.

编辑:为了澄清,他们实际上char并没有使用和short,他们确保它们是特定typedef的8位和16位.那么实际类型称为UInt8UInt16.

1.问题

iTunes的SDK使用unsigned short*其中一个字符串是必要的.使用它而不是char*/ unsigned char*?有什么好处?如何将其转换为char*,以及使用此类型时有何不同?

2.问题

我只看到char*必须存储字符串的时候.我什么时候应该使用unsigned char*,或者它没有任何区别?

c unsigned short char character-encoding

0
推荐指数
1
解决办法
1101
查看次数

C++最大的数值存储

是否有与C++中的Java Bigint相同的可以存储以下数字:

567014094304930933548155069494723691156768423655208899778686163624192868328194365094673392756508907687565332345345678900976543567890976543565789054335678097654680986564323567890876532456890775646780976543556789054367890765435689876545898876587907876535976565578907654538790878656543687656543467898786565457897675645657689756456578656456768654657898865567689656890795587907654678798765787897865654657897654678965465786867278762795432151914451557727529104757415030674806148138138281214236089749601911974949125689884222023119844272122501649909415937

我已经看过unsigned long long int,但这并不足以存储它.

c++ int unsigned unsigned-long-long-int c++11

0
推荐指数
1
解决办法
333
查看次数

是int隐式签名(C++)?

在C++中,当我说 int i = 0;

现在是int signed int i = 0;还是unsigned int i = 0;

我没有通过谷歌找到答案

c++ int unsigned signed

0
推荐指数
1
解决办法
303
查看次数

C unsigned int比较 - 包含自定义位数

我正在读取一个24位值,现在变成一个uint32_t变量.

在我的头撞墙后计算两个这样的变量之间的区别,并认为"它是无符号的!为什么这个溢出是一个问题?!",我意识到这些值超出了包含它们的变量的大小.

这是一个计数器,因此人们知道它比另一个"更大",尽管可能已经溢出.

因此,0x1 - 0x2 = 0xFFFFFFFF但应该是0x00FFFFFF.

我该如何处理这个问题?

  • 定义一个类型uint24;
  • if/ else在做适当算术之前更大;
  • 还有什么别的我没有想到的?

"最佳"应被解释为"最佳实践"/"最具可读性"/"最安全".

c unsigned types integer-arithmetic

0
推荐指数
1
解决办法
1009
查看次数

在Java中将64位无符号整数(以十六进制字符串形式)转换为十进制

我有一个表示64位unsigned int的十六进制字符串.

我想将它转换为java中的十进制表示.

我想使用Long.parseLong("HexString", 16);但在java中最左边的位是符号位,任何大于2 ^ 31-1的数字都不适合.

那我如何转换和存储这些数据?

谢谢,Sunny

java unsigned long-integer

0
推荐指数
1
解决办法
2224
查看次数

签名与无符号比较

#include <iostream>

int main()
{
    signed int a = 5;
    unsigned char b = -5;
    unsigned int c = a > b;

    std::cout << c << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

此代码打印0.

有谁能解释这里发生了什么?我猜测,编译器转换ab对同一类型的(unsigend int也许),并比较.

c++ unsigned signed compare

0
推荐指数
1
解决办法
148
查看次数

在C和C#中添加两个无符号值

我在c中有一个计算,我应该在c#中编写它

这是我在c中的代码:

const unsigned long *S //which is an array that already contains data ) 
unsigned long  y;
y = y + S[d]; //S[d] = 2582066069 and y = 3372499074 and the results is 1659597847
Run Code Online (Sandbox Code Playgroud)

但在我的C#代码中:

ulong[] S = (ulong[])hashtable[key];
ulong y = 2582066069;
y = y + S[d]; // s[d] = 3372499074 but the result is = 5954565143
Run Code Online (Sandbox Code Playgroud)

我不会动摇c和c#中这个添加操作的差异你会不会让我感到烦躁不安和我做错了?

c c# unsigned ulong

0
推荐指数
1
解决办法
79
查看次数

如果值已签名或未签名,汇编代码如何知道?

当有时我的代码将某个值视为已签名时,我会感到非常困惑,有时它会在比较值时将其视为无符号值.代码如何知道值是有符号还是无符号?

assembly unsigned signed msp430 texas-instruments

0
推荐指数
1
解决办法
1259
查看次数

Java字节数组中的无符号字节

这似乎是一个简单的问题,但我很困惑.

byte[] bArray = new byte[]{(byte) (0x80 & 0xff)};
System.out.println(bArray[0]);
Run Code Online (Sandbox Code Playgroud)

我的输出是-128.为什么?我怎样才能重写这个,以便字节数组包含128?我以为是0xff无条件的.谢谢你的帮助!

java arrays unsigned byte

0
推荐指数
1
解决办法
6496
查看次数