既有适合小白学习的零基础资料,也有适合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)**