objC 按位相加

发布于 2024-11-02 22:50:59 字数 304 浏览 2 评论 0原文

我期待

val = 3325
val &= 65535;


[rtnData appendData:[[NSString stringWithFormat:@"%x", val] dataUsingEncoding:NSUTF8StringEncoding]];

<30434644> 0CFD

但得到 <636664> cfd

因此,要么 3325 不是正确的起始 val(但我从 2 个不同的函数导出它),要么按位加法是错误的。

提前致谢。

Where

val = 3325
val &= 65535;


[rtnData appendData:[[NSString stringWithFormat:@"%x", val] dataUsingEncoding:NSUTF8StringEncoding]];

I am expecting <30434644> 0CFD

but getting <636664> cfd

So either 3325 is not the correct beginning val (but I have derived it from 2 different functions) or the bitwise addition is wrong.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满天都是小星星 2024-11-09 22:50:59

& 是按位“与”,而不是按位加法。

并且代码是错误的,因为您使用了错误的格式。使用 @"%04X" 而不是 @"%x"。 (其中 0 = 如果不够长则用 0 填充,4 = 至少 4 个字符,X = 大写十六进制)

& is bitwise "and", not bitwise-addition.

And the code is wrong because you have used the wrong format. Use @"%04X" instead of @"%x". (where 0 = pad with 0 if not long enough, 4 = at least 4 characters, X = upper case hexadecimal)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文