首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何快速计算恭维的十进制数?

如何快速计算恭维的十进制数?
EN

Stack Overflow用户
提问于 2018-07-30 13:41:12
回答 1查看 520关注 0票数 2

我有一个十进制数,我想把这个数字的前8位转换为恭维(即使它超过8位数)。

例如,我有编号633,当我将它转换成二进制格式时,它将是0010 0111 1001。

当我赞美前8位时,它变成了1000,0110,这个二进制的十进制数是134。

我正试图通过编程实现这一点,请提前帮助..thanks。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-30 13:46:51

您可以在不转换为二进制文件的情况下完成此操作:

代码语言:javascript
复制
let n = 633
let result = 255 - n % 256
print(result) // 134

256对数字进行调制产生低阶8位,并从255中减去执行1的补码。

通过使用& 255& 0xff获得低阶8位,您可以获得相同的结果:

代码语言:javascript
复制
let result = 255 - n & 255

您还可以使用255使用^运算符执行XOR-ing对1的补充:

代码语言:javascript
复制
let result = (n & 255) ^ 255

如果您坚持要转换为二进制并执行补语,那么您可以这样做:

代码语言:javascript
复制
let n = 633
let binary = String(n, radix: 2)
let lowbits = ("0000000" + binary).suffix(8)
let complement = String(lowbits.map { $0 == "0" ? "1" : "0" })
let result = Int(complement, radix: 2)!

print(result) // 134
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51595328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档