Swift学习笔记_数据类型_整数类型

1 整数类型

整数就是没有小数部分的数字。

整数类型分为两种:

(1)有符号整数类型:表示负整数、零、和正整数

(2)无符号整数类型:表示零、和正整数

有符号整数类型有5种表示方式:

(1)Int8:在内存中占8位,表示的范围是:-128~127

(2)Int16:在内存中占16位,表示的范围是:-32768~32767

(3)Int32:在内存中占32位,表示的范围是:-2147483648~2147483647

(4)Int64:在内存中占64位,表示的范围是:-9223372036854775808~9223372036854775807

(5)Int:在32位系统中,Int = Int32;在64位系统中,Int = Int64。

除了内存优化、性能调优等以外,推荐总是使用Int表示有符号整数类型,

可提高代码的一致性和可复用性。

※第一位是符号位

let int8min:Int8 = Int8.min //-128
let int8max:Int8 = Int8.max //127

let int16min:Int16 = Int16.min //-32768
let int16max:Int16 = Int16.max //32767

let int32min:Int32 = Int32.min //-2147483648
let int32max:Int32 = Int32.max //2147483647

let int64min:Int64 = Int64.min //-9223372036854775808
let int64max:Int64 = Int64.max //9223372036854775807

let intmin:Int = Int.min //-9223372036854775808
let intmax:Int = Int.max //9223372036854775807

无符号整数类型有5种表示方式:

(1)UInt8:在内存中占8位,表示的范围是:0~255

(2)UInt16:在内存中占16位,表示的范围是:0~65535

(3)UInt32:在内存中占32位,表示的范围是:0~4294967295

(4)UInt64:在内存中占64位,表示的范围是:0~18446744073709551615

(5)UInt:在32位系统中,UInt = UInt32;在64位系统中,UInt = UInt64。

即使知道被存储的数值是非负的,也推荐使用Int而不是UInt,

以提高代码的一致性和可复用性。

※没有符号位

let uint8min:UInt8 = UInt8.min //0
let uint8max:UInt8 = UInt8.max //255

let uint16min:UInt16 = UInt16.min //0
let uint16max:UInt16 = UInt16.max //65535

let uint32min:UInt32 = UInt32.min //0
let uint32max:UInt32 = UInt32.max //4294967295

let uint64min:UInt64 = UInt64.min //0
let uint64max:UInt64 = UInt64.max //18446744073709551615

let uintmin:UInt = UInt.min //0
let uintmax:UInt = UInt.max //18446744073709551615

可访问不同整数类型的min和max属性来获取对应类型的最小值和最大值。

如果声明并初始化变量或常量时没有指定数据类型,系统默认推断为Int类型。

//var tmpInt8:Int8 = 128 //error Integer literal 128 overflows when stored into Int8
//var tmpInt8:Int8 = -129 //error Integer literal -129 overflows when stored into Int8
var tmpInt8:Int8 = 127
//tmpInt8 = tmpInt8 + 1 //error

var tmpint = 30 //Int

整数类型的字面值有4种表示方式:

(1)十进制:默认的进制

(2)二进制:以0b开头

(3)八进制:以0o开头

(4)十六进制:以0x开头

※不能使用大写的字母:B、O、X

var tmpbinary = 0b11011 //27
//var tmpbinary2 = 0B1101 //error

var tmpocx = 0o23 //19
//var tmpocx2 = 0O23 //

var tmphex = 0x459F //17823
//var tmphex2 = 0X459f //error

可以给整数类型的字面值添加若干个0或_,以提高可读性。

let int64maxconstant:Int64 = 0922_3372_0368_5477_5807
let Uint64maxconstant:UInt64 = 18446_74407_37095_51615

如将两个不同整数类型的变量或常量进行运算,必须进行显式的类型转换。

var tmpint8:Int8 = 12
var tmpint16:Int16 = 30

//tmpint8 = tmpint16 //error Cannot assign value of type Int16 to type Int8
tmpint8 = Int8(tmpint16) //30
//tmpint16 = tmpint8
tmpint8 = 40
tmpint16 = Int16(tmpint8) //40

//tmpint8 + tmpint16 //error
tmpint8 + Int8(tmpint16) //80
Int16(tmpint8) + tmpint16 //80

var result = tmpint8 + Int8(tmpint16) //Int8
//var result:Int16 = tmpint8 + Int8(tmpint16) //error
时间: 2024-11-05 02:16:57

Swift学习笔记_数据类型_整数类型的相关文章

swift学习笔记之数据类型

前言:这份学习笔记是写给有编程经验的人看的,因为内容方面很多基础知识被省略掉了,所以请初学者们勿怪我写得不详尽. swift包括如下数据类型: 1.整型 Int var age:Int = 20 let age:Int = 20 [注]在此说一下swift较Objective-C的改变. 1)以前定义一个变量如整型的,我们会想下面这样写 NSInteger age = 20; 现在定义变量得用var关键字,然后在变量名称后面使用冒号加变量类型的方式,或者声明类型,如下: var age = 20

网易云课堂_C语言程序设计进阶_第一周:数据类型:整数类型、浮点类型、枚举类型

C语言程序设计进阶_第一周:数据类型:整数类型.浮点类型.枚举类型 1.0数据类型 1.1整数类型 1.2浮点类型 1.3逻辑类型 1.4类型转换和条件运算 1.0数据类型 1 整数 char(%c), short, int(%d), long(%ld), long long(C99) 2 浮点数 float(%f), double(%lf), long double(C99) 3 逻辑 bool(C99) 4 指针 5 自定义类型 所表达的数的范围:char<short<int<flo

Swift学习笔记(二)参数类型

关于参数类型,在以前的编程过程中,很多时间都忽视了形参与实参的区别.通过这两天的学习,算是捡回了漏掉的知识. 在swift中,参数有形参和实参之分,形参即只能在函数内部调用的参数,默认是不能修改的,如果想要修改就需要在参数前添加var声明. 但这样的声明过后,仍旧不会改变实参的值,这样就要用到inout了,传递给inout的参数类型必须是var类型的,不能是let类型或者字面类型,(字面类型是在swift中常提的一个术语,个人认为就是赋值语句,也不能修改)而且在传递过程中,要用传值符号"&

SWIFT学习笔记05

1.Swift 无需写break,所以不会发生这种贯穿(fallthrough)的情况.2.//用不到变量名,可用"_"替换 for _ in 1...power { answer *= base } 3.case 可以匹配更多的类型模式,包括区间匹配(range matching),元组(tuple)和特定类型的描述. 可以这样用case case 1...3: naturalCount = "a few" 4.如果存在多个匹配,那么只会执行第一个被匹配到的 ca

SWIFT学习笔记02

1.//下面的这些浮点字面量都等于十进制的12.1875: let decimalDouble = 12.1875 let exponentDouble = 1.21875e1 let hexadecimalDouble = 0xC.3p0//==12+3*(1/16) 2.//类型别名,用typealias关键字来定义类型别名 typealias AudioSample = UInt16 var maxAmplitudeFound = AudioSample.min 3.//元组 let ht

swift学习笔记(三)关于拷贝和引用

在swift提供的基本数据类型中,包括Int ,Float,Double,String,Enumeration,Structure,Dictionary都属于值拷贝类型. 闭包和函数同属引用类型 捕获则为拷贝.捕获即定义这些常量和变量的原作用域已不存在,闭包仍然可以在闭包函数体内引用和修改这些值 class属于引用类型. Array的情况稍微复杂一些,下面主要对集合类型进行分析: 一.关于Dictionary:无论何时将一个字典实例赋给一个常量,或者传递给一个函数方法时,在赋值或调用发生时,都会

Swift学习笔记

Apple 新推的Swift已经好几天了.对于向我这样的oc都还没完全琢磨透彻的菜鸟来说--(简直就是福利啊,joke) 看了几天的Swift,只是有了基本的印象.总感觉比较换混乱,可能源自与自己没怎么学过脚本语言.索性,边看边记,加深印象. 本来部分内容源自Apple的<The Swift Programming Language>以及互联网教程.其余内容均为个人理解,不保证正确. 进入正题: 1.Swift是什么? Apple唤他作:雨燕.其实英语过了四级的都应该看出来,Swift还有一层

C++学习笔记之数据类型

一.变量名 几条简单的C++命名规则: 在名称中只能使用字母,数字和下划线 名称的第一个字符不能是数字 区分大小写 不能将C++关键字用作名称 以两个下划线和大写字母打头的名称被保留给实现(编译器及其使用资源)使用.以一个下划线开头的名称被保留给实现,用作全局标识符. C++对名称长度没有限制 二.数据类型 计算机内存的最基本单元是位(bit).字节(byte)通常指的是8位内存单元,可以表示的范围0-255或者-128到127. (1)整型 short至少16位(大多数系统16位,-32768

Swift学习笔记五:循环和条件语句

一.循环语句 1. for循环 1) for -in 循环,对于数据范围,序列,集合等中的每一个元素,都执行一次 for a in 0...5{}    //循环迭代,从a=0到a=5,执行{}里的代码 注意:a只循环中存在,也就是出了{}a就不存在了 或者遍历数组 let a = [1,2,3] for b in a{} //循环迭代,从b=1到b=3 如果你不需要序列中的每一个值,可以使用_来忽略它,仅仅只是使用循环体本身: for _ in 0...5{}    //循环执行{}里的代码,

Swift学习笔记 - 可选 ?

可选类型 使用可选类型(optionals)来处理值可能缺失的情况.可选类型表示: 有值,等于 x 或者 没有值 注意:C 和 Objective-C 中并没有可选类型这个概念.最接近的是 Objective-C 中的一个特性,一个方法要不返回一个对象要不返回nil,nil表示“缺少一个合法的对象”.然而,这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型不起作用.对于这些类型,Objective-C 方法一般会返回一个特殊值(比如NSNotFound)来暗示值缺失.这种方法假设方法的