首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift中将负数改为二进制数

在Swift中将负数改为二进制数
EN

Stack Overflow用户
提问于 2017-03-19 06:35:43
回答 1查看 549关注 0票数 1

我尝试将整数值-1转换为二进制。

代码语言:javascript
复制
String(-1, radix: 2)

它应该打印0b1000,但打印出来-1。我尝试使用另一个数字,并寻找另一个教程,但它没有指定负数。这方面有什么最佳做法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-19 10:16:26

代码语言:javascript
复制
func printBinary4(x: Int) {
    let numBit = 4

    var i = x
    if i < 0 {
        i = 0b1 << numBit + i
    }

    var str = String(i, radix: 2)
    if str.characters.count < numBit {
        str = String(repeatElement("0", count: numBit - str.characters.count)) + str
    }
    print(str)
}

printBinary4(x: -1)
printBinary4(x: -2)
printBinary4(x: -3)
printBinary4(x: 0)
printBinary4(x: 4)

1111
1110
1101
0000
0100
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42883648

复制
相关文章

相似问题

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