uint与int的区别_int和uint的区别

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

在我们开始之前,这是一些给不熟悉计算机科学核心观点的人的背景知识,我们通常以字节为单元衡量数据的存储,每一个字节由二进制的位组成。取决于每一台电脑的处理器,它们的位数是不同的,例如:Apple][+是八字节的,ipones直到ipone5是三十二字节的,从ipone5开始就成了64字节了。

由于一个字节可以被打开或是关闭,这样我们就有了两个状态,计算机科学家意识到,一系列的位可以用二的幂相加。一个四位的数字可以被用来代表0-15,一个八位的数字可以被用来代替0-255,一个三十二位的数字的取值范围则是0-4,294,967,295,一个六十四位的数字的取值范围是0到一个很大的数字,我们大可不必去考虑它(大约1.844 x 10 ^ 19)。

每一个位变成了一个二的幂-它是一个二进制的数字,例如一个4位的数子1010变成了

1 * 8 = 8
0 * 4 = 0
1 * 2 = 2
0 * 1 = 0

把位加在一起,8 + 2 = 10,4位数字1111是15,四位数字0000是0。为了避免二进制数字和十进制数字混淆,前缀0b通常被用在代码或者文献中去描述一个二进制数字,例如0b1011是十进制的11。

但是这些数字仅仅是正数,对零减去1,程序会崩溃并抛出异常,对于很多的计算,我们需要出现负数。计算机科学提出了一个出色的解决方案我们称之位有符号数字,取出字节的第一位使之位正数和负数的标记,如果是零的话,值是正数,如果是一的话,值是负数。使用一个4位的例子,0b0101是一个有符号整数5。然而有一个原因我不太想讨论,它们做了一个不够直观的事情,负数从其最大值倒数。例如0b1101是一个有符号整数 0b111-0b101,它们是-2,而不是您直观认为的-5。

介绍Uint的特点

由于我们使用正负数字比仅带正数的时候多,所以我们的int被设计为有符号的,如果我们想使用一个值没有符号,这个时候我们就可以使用UINT,UINT创建了一个整数,该整数与处理器处理的位数相同,你唯一使用UINT的理由如下:当你想使用一个很大的数字,但最大值会取决于机器而改变,那对你来说可不是个好主意.

其他无符号整数的用处是需要一个特殊位数的数字的时候,Swift提供了类型UInt8,UInt16,UInt32,UInt64,这些是8,16,32,64位的数字,为什么我们需要这些,因为大多数符号整形的使用都会指定使用的位数.

无符号整数是纯1和0, 我们有几种使用它们的方法,我们可以是每一位分别代表着其他东西的状态,这在控制设备中很常见,你可以使用一个字节的不同位来打开或关闭一个设备的不同部分(C++中您可以使用bitset).其他的用处是将值限定在两个数字之间.很多设备,无论它有多么的复杂,任然使用着传统的8位,16位,32位的值.在网络上和非Apple的API的标准RGB颜色是三个八位的集合,分别是红色,绿色和蓝色.

无符号整形的基本数学

无符号整形的数学运算与Int相同,唯一的例外是: 你需要去注意边界,剩下的都可以正常工作了

let c:UInt8 = 0b00000101
let d:UInt8 = 128 //0b10000000
let e:UInt8 = 255 //0b11111111
let f:UInt8 = 10 //0b00001010

print("Math operators")
print(d + 1 ) // 129
print(d - 1 ) // 127
print(f \* 2) // 20
print(d / 3) // 42

然而 这样将会返回一个异常

print(f - 11)

或者这样



![img](https://img-blog.csdnimg.cn/img_convert/24e447e28df8f86aeb0d4474c95fc182.png)
![img](https://img-blog.csdnimg.cn/img_convert/e793974cc8d955471dc74174655c19e1.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值