You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何将用户输入的二进制字符串转为数值以执行按位OR操作

二进制字符串转数值并执行按位OR的正确方法

嘿,你踩的坑我之前也遇到过!直接用Int16(a)!转换二进制字符串是行不通的——这个默认初始化器会把字符串当成十进制数来解析,比如"10101"会被转成十进制的10101,而不是二进制对应的21,这就导致后续的按位OR操作完全偏离预期了。

Swift的整数类型其实自带了专门处理不同进制字符串的初始化方法,只需要指定radix(基数)参数为2,就能正确把二进制字符串转成对应的数值。

给你修正后的代码,还加了安全解包的处理(避免输入无效二进制字符串时崩溃):

// 假设a是输入的二进制字符串"10101",b是"11110"
guard let aBits = Int16(a, radix: 2), 
      let bBits = Int16(b, radix: 2) else {
    // 这里可以根据需求替换成自定义错误处理,比如提示用户输入无效
    fatalError("输入的不是有效的二进制字符串哦")
}
let combinedBits = aBits | bBits
// 这里combinedBits的结果是十进制31,对应二进制11111,正是你要的按位OR结果

额外提一句:尽量不要用强制解包!,如果用户输入了包含非0/1的字符,强制解包会直接崩溃,用guard let或者if let做安全处理会更健壮。

内容的提问来源于stack exchange,提问作者Bhanupriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:17:12