关于网站建设的合同范本,石家庄网站托管公司,网站建设移交确认书,域名查询入口本篇将详细讲解Cangjie中的整数类型#xff0c;探讨整数的定义、操作、表示范围、进制表示、类型转换及应用场景#xff0c;帮助开发者在Cangjie中灵活运用整数类型构建程序逻辑。 关键词
有符号整数与无符号整数表示范围与溢出进制表示类型转换字面量与操作 一、整数类型概…本篇将详细讲解Cangjie中的整数类型探讨整数的定义、操作、表示范围、进制表示、类型转换及应用场景帮助开发者在Cangjie中灵活运用整数类型构建程序逻辑。 关键词
有符号整数与无符号整数表示范围与溢出进制表示类型转换字面量与操作 一、整数类型概述
在Cangjie中整数类型分为**有符号signed整数类型和无符号unsigned**整数类型。
有符号整数包括 Int8、Int16、Int32、Int64 和 IntNative分别用于表示编码长度为 8-bit、16-bit、32-bit、64-bit 和平台相关大小的有符号整数值。无符号整数包括 UInt8、UInt16、UInt32、UInt64 和 UIntNative表示相同编码长度的无符号整数值。 二、整数类型的表示范围
有符号整数范围为 -2^(N-1) 到 2^(N-1)-1。无符号整数范围为 0 到 2^N-1。
类型表示范围Int8-128 127Int16-32,768 32,767Int32-2,147,483,648 2,147,483,647Int64-9,223,372,036,854,775,808 9,223,372,036,854,775,807UInt80 255UInt160 65,535UInt320 4,294,967,295UInt640 18,446,744,073,709,551,615 使用建议通常建议优先使用 Int64 和 UInt64除非特别需要节省内存或控制特定范围。整数类型字面量在没有类型上下文时默认推断为 Int64可以避免不必要的类型转换。 三、整数的进制表示
整数类型字面量可以用四种进制表示
二进制0b 或 0B 开头例如 0b1101 表示 13。八进制0o 或 0O 开头例如 0o15 表示 13。十进制无前缀如 13。十六进制0x 或 0X 开头例如 0xD 表示 13。
在各进制表示中可用下划线 _ 作为分隔符来提高可读性。
let binNum 0b1010_1010 // 二进制
let octNum 0o52 // 八进制
let decNum 42 // 十进制
let hexNum 0x2A // 十六进制println(二进制: ${binNum}, 八进制: ${octNum}, 十进制: ${decNum}, 十六进制: ${hexNum})输出:
二进制: 170, 八进制: 42, 十进制: 42, 十六进制: 42四、整数的基本操作
Cangjie中的整数类型支持以下基本操作符包括算术、位、关系和自增自减操作。
4.1 算术操作
算术操作符包括加、减-、乘*、除/和取模%
let a: Int64 10
let b: Int64 3let sum a b
let difference a - b
let product a * b
let quotient a / b
let remainder a % b println(加法: ${sum}, 减法: ${difference}, 乘法: ${product}, 除法: ${quotient}, 取模: ${remainder})输出:
加法: 13, 减法: 7, 乘法: 30, 除法: 3, 取模: 14.2 位操作
位操作包括按位求反、按位与、按位或、左移、右移等
let andVal 0b1100 0b1010 // 按位与
let orVal 0b1100 | 0b1010 // 按位或
let xorVal 0b1100 ^ 0b1010 // 按位异或
let shiftLeft 0b0001 2 // 左移两位
let shiftRight 0b0100 2 // 右移两位println(按位与: ${andVal}, 按位或: ${orVal}, 按位异或: ${xorVal}, 左移: ${shiftLeft}, 右移: ${shiftRight})输出:
按位与: 8, 按位或: 14, 按位异或: 6, 左移: 4, 右移: 14.3 自增和自减操作
Cangjie支持自增和自减–作为后缀操作符
var counter 5
println(counter) // 理想输出 5然后 counter 变为 6
println(counter--) // 理想输出 6然后 counter 变为 5理想输出:
5
6实际输出Cangjie 0.55.3 版本:
()
()替代方案
var counter 5
println(counter) // 输出 5
counter
println(counter) // 输出 6
counter--
println(counter) // 输出 5五、整数的类型转换
Cangjie支持整数类型之间的转换通常通过 .toInt64()、.toInt32() 等方法进行。
let smallNum: Int32 100
let largeNum: Int64 Int64(smallNum) // Int32 转 Int64let bigNum: Int64 123456789
let reducedNum: Int32 Int32(bigNum) // Int64 转 Int32println(Int32转Int64: ${largeNum}, Int64转Int32: ${reducedNum})输出:
Int32转Int64: 100, Int64转Int32: 123456789六、整数类型字面量与类型后缀
整数类型字面量可使用后缀指定类型便于在不同类型的表达式中进行明确的类型转换
后缀类型i8Int8i16Int16i32Int32i64Int64u8UInt8u16UInt16u32UInt32u64UInt64
示例:
let x 100i8 // Int8 类型
let y 0x10u64 // UInt64 类型
let z 0o432i32 // Int32 类型println(x: ${x}, y: ${y}, z: ${z})输出:
x: 100, y: 16, z: 282七、整数在实际应用中的场景
整数类型适用于计数、循环控制和标识等操作能够有效处理需要整数量的数据情境。
7.1 计数应用
let items: Int64 5
for (i in 1..items) {println(Item ${i})
}输出:
Item 1
Item 2
Item 3
Item 47.2 标识符应用
整数类型也常用于作为标识符用于唯一识别数据。
class User {var id: Int64var name: Stringinit(id: Int64, name: String) {this.id idthis.name name}
}let user User(1, Alice)
println(User ID: ${user.id}, Name: ${user.name})输出:
User ID: 1, Name: Alice小结
本篇详细讲解了Cangjie整数类型的定义、表示范围、进制表示、基本操作及实际应用场景帮助开发者熟练运用整数类型构建程序逻辑。 下篇预告
下一篇将详细解析Cangjie的 浮点类型深入理解小数运算及其应用敬请关注 「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解 上一篇 「Mac玩转仓颉内测版22」基础篇2 - 基础数据类型简述
下一篇 「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解 作者SoraLuna 链接https://www.nutpi.net/thread?topicId205 來源坚果派 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。