深入理解仓颉语言的整数类型从基础到高级操作【华为鸿蒙技术开发|仓颉语言】

举报
柠檬味拥抱 发表于 2024/07/21 12:28:23 2024/07/21
【摘要】 仓颉语言中的整数类型详解在编程中,整数类型的选择和使用是至关重要的。仓颉语言中,整数类型分为有符号和无符号两大类,每类包含多种具体类型,以满足不同应用场景的需求。本文将详细介绍这些整数类型的特性、表示范围、字面量表示方法及其支持的操作符,帮助开发者更好地理解和使用这些类型。 有符号整数类型有符号整数类型用于表示包括负数在内的整数。仓颉语言提供了以下几种有符号整数类型:Int8: 表示 8 ...

仓颉语言中的整数类型详解

在编程中,整数类型的选择和使用是至关重要的。仓颉语言中,整数类型分为有符号和无符号两大类,每类包含多种具体类型,以满足不同应用场景的需求。本文将详细介绍这些整数类型的特性、表示范围、字面量表示方法及其支持的操作符,帮助开发者更好地理解和使用这些类型。

有符号整数类型

有符号整数类型用于表示包括负数在内的整数。仓颉语言提供了以下几种有符号整数类型:

  • Int8: 表示 8 位有符号整数。
  • Int16: 表示 16 位有符号整数。
  • Int32: 表示 32 位有符号整数。
  • Int64: 表示 64 位有符号整数。
  • IntNative: 表示与平台相关大小的有符号整数。

无符号整数类型

无符号整数类型仅表示非负整数。仓颉语言提供了以下几种无符号整数类型:

  • UInt8: 表示 8 位无符号整数。
  • UInt16: 表示 16 位无符号整数。
  • UInt32: 表示 32 位无符号整数。
  • UInt64: 表示 64 位无符号整数。
  • UIntNative: 表示与平台相关大小的无符号整数。

整数类型的表示范围

每种整数类型的表示范围取决于其位数和是否有符号。下表列出了各整数类型的表示范围:

类型 表示范围
Int8 -128 到 127
Int16 -32,768 到 32,767
Int32 -2,147,483,648 到 2,147,483,647
Int64 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
IntNative 平台相关
UInt8 0 到 255
UInt16 0 到 65,535
UInt32 0 到 4,294,967,295
UInt64 0 到 18,446,744,073,709,551,615
UIntNative 平台相关

整数类型字面量

仓颉语言支持多种进制表示形式的整数类型字面量,包括二进制、八进制、十进制和十六进制。具体表示方法如下:

  • 二进制:使用 0b0B 前缀,例如 0b1100
  • 八进制:使用 0o0O 前缀,例如 0o14
  • 十进制:不使用前缀,例如 12
  • 十六进制:使用 0x0X 前缀,例如 0xC

在各进制表示中,可以使用下划线 _ 作为分隔符,以提高可读性,例如 0b1010_1100

整数类型字面量的后缀

为了明确表示整数字面量的类型,可以在字面量后添加后缀。以下是常见后缀及其对应的类型:

后缀 类型
i8 Int8
u8 UInt8
i16 Int16
u16 UInt16
i32 Int32
u32 UInt32
i64 Int64
u64 UInt64

示例代码:

var x = 100i8  // x 是类型为 Int8 的 100
var y = 0x10u64 // y 是类型为 UInt64 的 16
var z = 0o432i32 // z 是类型为 Int32 的 282

整数类型支持的操作

整数类型支持多种操作符,包括算术操作符、位操作符、关系操作符、自增和自减操作符、赋值操作符及复合赋值操作符。

算术操作符

  • 一元负号(-)
  • 加法(+)
  • 减法(-)
  • 乘法(*)
  • 除法(/)
  • 取模(%)
  • 幂运算(**)

需要注意的是,除了幂运算(**),其他操作符要求操作数是相同类型的整数。

示例代码:

let a = 10 + 5  // a 是 15
let b = 10 - 5  // b 是 5
let c = 10 * 5  // c 是 50
let d = 10 / 2  // d 是 5
let e = 10 % 3  // e 是 1

位操作符

  • 按位求反(!)
  • 左移(<<)
  • 右移(>>)
  • 按位与(&)
  • 按位异或(^)
  • 按位或(|)

示例代码:

let f = 0b1100 & 0b1010  // f 是 0b1000
let g = 0b1100 | 0b1010  // g 是 0b1110
let h = 0b1100 ^ 0b1010  // h 是 0b0110
let i = 0b1100 << 2      // i 是 0b110000
let j = 0b1100 >> 2      // j 是 0b0011

关系操作符

  • 小于(<)
  • 大于(>)
  • 小于等于(<=)
  • 大于等于(>=)
  • 相等(==)
  • 不等(!=)

示例代码:

let k = 10 < 20  // k 是 true
let l = 10 > 20  // l 是 false
let m = 10 == 10 // m 是 true
let n = 10 != 5  // n 是 true

自增和自减操作符

  • 自增(++)
  • 自减(–)

需要注意,仓颉中的自增和自减操作符只能作为一元后缀操作符使用。

示例代码:

var o = 10
o++  // o 现在是 11
o--  // o 现在是 10

赋值操作符和复合赋值操作符

  • 赋值操作符:=
  • 复合赋值操作符:+=、-=、*=、/=、%=、**=、<<=、>>=、&=、^=、|=

示例代码:

var p = 10
p += 5  // p 现在是 15
p *= 2  // p 现在是 30
p /= 3  // p 现在是 10
p %= 3  // p 现在是 1

总结

整数类型是仓颉语言中基础且重要的部分。选择合适的整数类型不仅能提高程序的效率,还能避免溢出等潜在错误。希望本文对仓颉语言中整数类型的详细介绍能帮助您更好地理解和使用这些类型,编写出高效、健壮的代码。

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。