当我在操场上写这行时:
let firstBits: Int8 = 0b11111111
Run Code Online (Sandbox Code Playgroud)
存在错误:存储到'Int8'时整数文字溢出
由于Int8是一个有符号值,其范围是-128到127.左边的第一位是单(减号或加号),另外7位代表值.所以二进制格式应该总共有8位.但为什么会有错误呢?
如果我这样用7位写:
let firstBits: Int8 = 0b1111111
Run Code Online (Sandbox Code Playgroud)
没有错误,firstBits的值为127.
那么我应该如何将-128分配给带有二进制格式的firstBits?
虽然我不与斯威夫特有经验,我可以放心地假定二进制文字并不能代表二进制表示,但只有价值.所以0b11111111仍然是255.如果你想-128,你应该使用-0b10000000.
| 归档时间: |
|
| 查看次数: |
1415 次 |
| 最近记录: |