swift3.0无符号右移(类似Java的>>>)
来源:互联网 发布:js中的map的使用 编辑:程序博客网 时间:2024/06/15 14:36
>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;
>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。
以32位为例,参数:value为十进制数,bit为右移的位数,返回结果是一个32位的整数
private func relizeRight(value:Int32, bit:Int32) ->Int32 {
//将十进制转为二进制
var caculate =String.init(value, radix:2)
if caculate.characters.first =="-" {
let index = caculate.index(caculate.startIndex, offsetBy:1)
caculate = caculate.substring(from: index)
}
for_in0..<32-caculate.characters.count {
caculate = "0"+caculate
}
//如果是负数位移那么要对二进制数取反然后+1
if value <0 {
let becomeTwo = caculate.replacingOccurrences(of:"1", with:"2")
let becomeOne = becomeTwo.replacingOccurrences(of:"0", with:"1")
caculate = becomeOne.replacingOccurrences(of:"2", with:"0")
if caculate.characters.last =="0" {
let index = caculate.index(caculate.startIndex, offsetBy: caculate.characters.count - 1)
caculate = caculate.substring(to: index)+"1"
}else {
let index = caculate.index(caculate.startIndex, offsetBy: caculate.characters.count - 2)
caculate = caculate.substring(to: index)+"10"
}
}
for_in0..<bit {
caculate = "0"+caculate
}
let index = caculate.index(caculate.startIndex, offsetBy:32)
caculate = caculate.substring(to: index)
let myResult =Int32.init(caculate, radix:2)
return myResult ??0
}
- swift3.0无符号右移(类似Java的>>>)
- java的无符号右移
- java 无符号右移
- >>> java的扩展移位运算符 无符号右移
- java左移、右移、无符号右移
- java左移、右移、无符号右移、补码
- java左移、右移、无符号右移
- Java中“>> 右移”;“<< 左移”无符号右移>>>;“
- java中左移、右移、无符号右移
- 关于java中位运算的左移、右移、无符号右移
- java左移、右移、无符号右移加补码
- java中byte,short的无符号右移(>>>)的问题
- java的算术右移(>>)、算术左移(<<)及逻辑右移(>>>,无符号移位)
- 对于Thinking In Java中byte,short无符号右移的理解
- java中右移运算符>>和无符号右移运算符>>>的区别
- 无符号右移-1?关于Java位移,多数人不知道的
- 有符号右移,无符号右移,左移
- Java 位运算符:左移 << 右移 >> 无符号右移 >>>
- Oracle数据库查询上一篇下一篇
- 【TI BLE】主从机数据交互过程-蓝牙Notification方式
- 【国家集训队2010】小Z的袜子[莫队算法]
- js之对象
- 使用bootstrap引起IE浏览器滚动条变为透明的并且不占用页面宽度的问题以及解决办法
- swift3.0无符号右移(类似Java的>>>)
- MySQL中的 last_day() 函数
- 图像处理之双边滤波效果(Bilateral Filtering for Gray and Color Image)
- 修改ElementUI源码实践
- ffmpeg+nginx建立rtmp服务器,播放摄像头流
- 1016. Phone Bills (25)
- 产品理解与思考
- FtpUtil工具类
- VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息)