swift - 如何快速计算一个人的赞美的小数?

标签 swift binary hex decimal

我有一个十进制数,我想将该数字的前 8 位转换为一个人的赞美(即使它超过 8 位数字)..

例如,我有数字 633,当我将其转换为二进制形式时,它将是 0010 0111 1001

当我对前 8 位求和时,它变成了 1000 0110,这个二进制的十进制数是 134 ..

我正在尝试通过编程方式实现这一点,请帮助..提前致谢。

最佳答案

你甚至可以在不转换为二进制的情况下做到这一点:

let n = 633
let result = 255 - n % 256
print(result) // 134

256 修改数字产生低 8 位,并从 255 中减去它执行 1 的补码。

使用& 255& 0xff 获取低8位可以得到相同的结果:

let result = 255 - n & 255

您还可以使用 ^ 运算符与 255 进行异或来执行 1 的补码:

let result = (n & 255) ^ 255

如果你坚持要转换成二进制然后做补码,那么你可以这样做:

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

关于swift - 如何快速计算一个人的赞美的小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51595328/

相关文章:

json - 如何使用 swift 4 和 struct 从字典中获取数据?

ios - Swift Codable 将空 json 解码为 nil 或空对象

http - 是否值得为二进制通信实现一个服务器

powershell - 将Format-Hex PowerShell表转换为原始十六进制转储

javascript - 在网络上使用 GZIP 压缩十六进制字符串(Javascript)

ios - 导航栏颜色

javascript - 为什么 console.log 只显示 0.1+0.2=0.30000000000000004 产生的部分数字

python - 如何使用 Python 从二进制代码创建 PDF 文件?

ios - 如何在 HMAC 中以 HEX Swift iOS 形式传递 key

ios - 由于应用程序中超过自动锁定时间,如何检测手机已被锁定?