仓颉编程语言:整数类型(基础数据类型)

仓颉编程语言开发:整数类型 整数类型分为有符号(signed)整数类型和无符号(unsigned)整数类型。 阅读详情

整数类型分为有符号(signed)整数类型和无符号(unsigned)整数类型。

有符号整数类型包括 Int8、Int16、Int32、Int64 和 IntNative,分别用于表示编码长度为 8-bit、16-bit、32-bit、64-bit 和平台相关大小的有符号整数值的类型。

无符号整数类型包括 UInt8、UInt16、UInt32、UInt64 和 UIntNative,分别用于表示编码长度为 8-bit、16-bit、32-bit、64-bit 和平台相关大小的无符号整数值的类型。

对于编码长度为 N 的有符号整数类型,其表示范围为:

;对于编码长度为 N 的无符号整数类型,其表示范围为:

。下表列出了所有整数类型的表示范围:

类型

表示范围

Int8

Int16

Int32

Int64

IntNative

platform dependent

UInt8

UInt16

UInt32

UInt64

UIntNative

platform dependent

程序具体使用哪种整数类型,取决于该程序中需要处理的整数的性质和范围。在 Int64 类型适合的情况下,首选 Int64 类型,因为 Int64 的表示范围足够大,并且整数类型字面量在没有类型上下文的情况下默认推断为 Int64 类型,可以避免不必要的类型转换。

整数类型字面量

整数类型字面量有 4 种进制表示形式:二进制(使用 0b 或 0B 前缀)、八进制(使用 0o 或 0O 前缀)、十进制(没有前缀)、十六进制(使用 0x 或 0X 前缀)。例如,对于十进制数 24,表示成二进制是 0b00011000(或 0B00011000),表示成八进制是 0o30(或 0O30),表示成十六进制是 0x18(或 0X18)。

在各进制表示中,可以使用下划线 _ 充当分隔符的作用,方便识别数值的位数,如 0b0001_1000。

对于整数类型字面量,如果它的值超出了上下文要求的整数类型的表示范围,编译器将会报错。

let x: Int8 = 128          // Error, 128 out of the range of Int8
let y: UInt8 = 256         // Error, 256 out of the range of UInt8
let z: Int32 = 0x8000_0000 // Error, 0x8000_0000 out of the range of Int32

在使用整数类型字面量时,可以通过加入后缀来明确整数字面量的类型,后缀与类型的对应为:

后缀

类型

后缀

类型

i8

Int8

u8

UInt8

i16

Int16

u16

UInt16

i32

Int32

u32

UInt32

i64

Int64

u64

UInt64

加入了后缀的整数字面量可以像下面的方式来使用:

var x = 100i8  // x is 100 with type Int8
var y = 0x10u64 // y is 16 with type UInt64
var z = 0o432i32  // z is 282 with type Int32

整数类型支持的操作

整数类型默认支持的操作符包括:算术操作符、位操作符、关系操作符、自增和自减操作符、赋值操作符、复合赋值操作符。各操作符的优先级参见附录中的操作符。

  1. 算术操作符包括:一元负号(-)、加法(+)、减法(-)、乘法(*)、除法(/)、取模(%)、幂运算(**)。

    • 除了一元负号(-)和幂运算(**),其他操作符要求左右操作数是相同的类型。

    • *,/,+ 和 - 的操作数可以是整数类型或浮点类型。

    • % 的操作数只支持整数类型。

    • ** 的左操作数只能为 Int64 类型或 Float64 类型,并且:

      • 当左操作数类型为 Int64 时,右操作数只能为 UInt64 类型,表达式的类型为 Int64。
      • 当左操作数类型为 Float64 时,右操作数只能为 Int64 类型或 Float64 类型,表达式的类型为 Float64。

    幂运算的使用,见如下示例:

    let p1 = 2 ** 3               // p1 = 8
    let p2 = 2 ** UInt64(3 ** 2)  // p2 = 512
    let p3 = 2.0 ** 3.0           // p3 = 8.0
    let p4 = 2.0 ** 3 ** 2        // p4 = 512.0
    let p5 = 2.0 ** 3.0           // p5 = 8.0
    let p6 = 2.0 ** 3.0 ** 2.0    // p6 = 512.0
  2. 位操作符包括:按位求反(!)、左移(<<)、右移(>>)、按位与(&)、按位异或(^)、按位或(|)。注意,按位与、按位异或和按位或操作符要求左右操作数是相同的整数类型。

  3. 关系操作符包括:小于(<)、大于(>)、小于等于(<=)、大于等于(>=)、相等(==)、不等(!=)。要求关系操作符的左右操作数是相同的整数类型。

  4. 自增和自减操作符包括:自增(++)和自减(--)。注意,仓颉中的自增和自减操作符只能作为一元后缀操作符使用。

  5. 赋值操作符即 =,复合赋值操作符包括:+=、-=、*=、/=、%=、**=、<<=、>>=、&=、^=、|=。

注意

本章中我们所提及的某个类型支持的操作,均是指在没有操作符重载的前提下。

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing ,不定期分享原创知识。

 

鸿蒙4.0开发笔记之ArkTS语法的基础数据类型[DevEco Studio开发](七) 变量名称可以包含数字和字母。变量名不能以数字开头。除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。不能使用关键字和保留字(已经定义了特殊含义的单词)在TypeScript的语法中,声明变量需要加上前缀关键字let。//变量声明并赋值:变量的初始化//变量声明,后面需要再单独赋值age = 25在HarmonyOS的ArkTS语法里,也是TypeScript中,undefined和null两者各自有自己的类型分别叫做undefined和null。 阅读详情

相关推荐

鸿蒙应用开发之仓颉编程语言基础

仓颉编程语言是华为公司独立研发并开源的一种面向全场景应用开发的通用编程语言,可以兼顾开发效率和运行性能,并提供良好的编程体验。

sinat_30844883的博客 2904

8.仓颉编程_数值转字符串与字符串转数值

数值转字符串与字符串转数值的相互转换。

Txwtech 913

仓颉编程语言:基本概念

在以上程序中,if 表达式作为变量定义的初值使用,由于变量 bit 没有被标注类型、需要从初值中推导,所以 if 表达式的类型取为两个分支代码块类型的最小公共父类型,根据前文对“代码块”的介绍,可知两个分支代码块类型都是 Int8,所以 if 表达式的类型被确定为 Int8,其值为所执行分支即 else 分支代码块的值,所以变量 bit 的类型为 Int8、值为 1。在仓颉程序中,由一对大括号“{}”包围起来的一组表达式,被称为“代码块”,它将作为程序的一个顺序执行流,其中的表达式将按编码顺序依次执行。

啥也不会的云计算小白 3124

仓颉编程语言:类型转换

介绍数值类型之间的转换

Androidbye的博客 1300

LWIP协议栈在STM32H7上的内存优化实战:如何用32KB RAM实现稳定千兆以太网通信

本文深入探讨了在STM32H7微控制器上,如何通过内存优化策略,在仅32KB的D2 SRAM中稳定运行LWIP协议栈以实现千兆以太网通信。文章详细分析了STM32H7的内存架构、LWIP的内存消耗瓶颈,并提供了从描述符表与PBUF池精确分配、链接脚本修改到MPU区域划分的一整套实战优化方案,旨在解决大数据量传输卡死等常见配置问题。

gg901的博客 605

保姆级教程:用U盘给浪潮服务器装系统(含RAID驱动加载技巧)

本文提供了一份详细的浪潮服务器U盘安装系统指南,重点介绍了RAID驱动加载技巧与实战步骤。从准备工作到系统安装全流程,涵盖RAID配置、驱动加载方法及常见问题排查,帮助用户高效完成服务器系统部署。特别强调RAID驱动与服务器型号的匹配性,确保安装过程顺利。

uuu88的博客 738

鸿蒙仓颉语言【基础-数据类型dataType】

仓颉中常见的高级泛型有: Collection: 泛型集合类型 ArrayList:泛型数组链表类型 Array: 泛型数组类型 Result: 泛型结果类型,表示可能包含错误的结果。高级类型,非常多,多以标准库或者可扩展库提供,你也可以编写自己的类库,这里列举一些常见的高级类型。这些是一些可能的数据类型和示例,具体的Rust代码实现可能有所不同,这里只是提供了一个对比参考。需要注意语言规约是所有的数据类型名都是大写。或其他类型,Type可以是任意自定义类型,如。

鸿蒙的技术博客 893

方法二:旋转机械动平衡精度计算

本文以实际案例为基础,系统阐述基于ISO 1940标准的动平衡精度G GG等级计算方法。通过角速度转换、许用剩余不平衡量e p e r e_{per}e per ​ 推导及G GG等级公式应用,结合惯性力偶矩、转子质量等参数,得出某转子系统的动平衡精度为G 40 G40G40。文中详细解析了公式原理与参数单位转换要点,并附完整ISO 1940动平衡等级参考表,为工程师提供从理论到实践的完整解决方案。研究结果表明,该方法可有效量化旋转机械的平衡精度,适用于风机、泵类等中低速设备的设计与调试,对提升设备运行

weixin_46153372的博客 922

仓颉编程语言深入教程:基础概念和数据类型

变量和常量是程序的基本组成部分,仓颉语言使用let定义变量,const定义常量。// 定义变量// 定义常量函数通过fn关键字定义,可以有参数和返回值。// 定义一个计算平方的函数// 输出 25本文深入剖析了仓颉编程语言的基础数据类型及其高级用法,并通过代码示例展示了每种类型的实际应用场景。希望读者能够通过本文掌握仓颉语言的核心思想,并在实践中灵活运用,构建高效优雅的应用程序。通过以上步骤,相信你已经初步了解了仓颉编程语言的安装和使用。

2301_80863610的博客 2997

把MinerU集成到Dify

本文介绍了如何将本地部署的MinerU与Dify平台进行集成。首先需要确保Dify和MinerU在Docker环境中正常运行,并通过配置虚拟网络实现互联。然后详细说明了在Dify平台安装MinerU插件的步骤,包括从插件市场搜索安装、配置连接参数等关键操作。特别强调了要等待MinerU容器完全启动(healthy状态)后再进行Dify配置,否则会出现连接错误。通过简单的URL指向和API密钥设置,用户即可实现Dify平台与本地MinerU算力网络的对接,为后续的AI应用开发提供基础支持。

lyxerlau的博客 315

PIC单片机应用开发实践教程(二): 新建工程

File---New ProjectMicrochip Embedded --- Standalone Project 选择所用MCU对应型号 点击 Finish 后,工程就建好了 至止,我们的一个新工程就建完成了!

qq_57798018的博客 2893

跟我一起学“仓颉”编程语言—基本数据类型

本章为大家详细的介绍了仓颉编程语言中基本数据类型的内容。

Cool_foolisher的博客 2799

1.2 重叠因子:双重指数移动平均(Double Exponential Moving Average, DEMA)概念与Python实战

双重指数移动平均(Double Exponential Moving Average, DEMA)是一种改进的移动平均线指标,由Patrick Mulloy在1994年开发。相比传统的指数移动平均线(EMA),DEMA通过减少滞后性来提供更快的市场反应。它通过两次计算EMA并进行特殊组合来实现这一目标,可以在保持平滑性的同时减少滞后。

Kewin的博客 2170

华为仓颉|新一代高性能编程语言

华为公司推出了自有的编程语言——仓颉(Cangjie)。这款语言定位于高性能计算和高安全性应用,旨在解决现代开发中的一系列痛点。小编经过两天的漫长等待后,终于通过审核,拿到了仓颉编译工具。现在华哥就给大家来开箱体验下。仓颉支持多种基本数据类型,包括整数、浮点数、布尔值、字符串等。整数类型:用于表示整数值,可以是有符号或无符号。浮点数类型:用于表示带有小数点的数值。布尔类型:用于表示逻辑真或假。字符串类型:用于表示文本数据。以冒号引出类型定义,这点跟typecript很像。

liyunhua258的博客 5405

图文实录|大规模预训练模型:探讨与展望

第二期「澜舟分享会」我们邀请到来自复旦大学计算机学院邱锡鹏教授分享了“大规模预训练模型:探讨与展望”,本此演讲主要围绕大规模预训练语言模型展开讨论,并探讨大模型成功的原因、适用场景、未来发展方向以及身处大模型时代我们的机遇。

langboat_mengzi的博客 1205

9篇2章2节:GBD 数据库的数据申请详解

无论您是初入公共卫生领域的学生、资深的科研工作者,还是政策决策者,GBD数据库都将成为您数据分析与决策支持中不可或缺的重要工具。

MD Code 2604

仓颉基础大揭秘:数据类型的奇妙世界

仓颉编程语言作为一款面向全场景应用开发的现代编程语言,通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的 IDE工具链支持,为开发者打造友好开发体验和卓越程序性能。案例结合代码体验,让大家更直观的了解仓颉语言中的基础数据类型。

华为云官方博客 1841

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

仓颉编程语言青少年基础教程:数据类型

本文介绍了仓颉编程语言的数据类型系统,重点阐述了数值类型的分类和数值类型(包括整数类型与浮点数类型),其它类型以后介绍。

cnds123的专栏 1287

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

仓颉编程语言基础数据类型详解(上)

摘要:仓颉编程语言提供了一套完整的基础数据类型系统,包括整数(8-64位有/无符号)、浮点数(16-64位)、布尔型、字符(Unicode支持)和字符串(UTF-8编码)。各类型具有严格的操作规范,整数运算需显式类型转换,浮点数遵循IEEE754标准并提供精度控制,字符支持全Unicode集,字符串不可变且最大支持4GB。语言特性强调类型安全,操作符系统涵盖算术、关系、逻辑和位运算,并采用显式类型转换策略。

Huang兄 875

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【仓颉语言基础】语言概念、环境配置与语法解析

华为仓颉语言是一门专为分布式系统设计的现代编程语言,以简洁的语法和强大的分布式能力为核心,提供高效的资源管理和任务调度方案。本篇文章将带您从概念入手,逐步掌握环境配置与语法基础,为分布式开发奠定坚实基础。

专注于 C/C++ 后端开发,涵盖基础语法、Linux系统与网络、MySQL数据库、常见算法及项目经验。 3710

cangjie仓颉编程语言学习Note-1.基础语法

仓颉是一帮子rust开发者,吸收了rust的语法,参考kotlin, golang, typescript 而做出的糅合怪!它使用方舟编译器,以llvm为后端,开发的一个国产编程语言。因为吸取了很多编程语言的优点,所以体验不错,但是融合的稍显生硬。又因为作为鸿蒙操作系统底层语言,所以标准库很完善,使用相对方便。和golang类似,简单的功能开发,几乎可以不依赖第三方库。

笨笨D幸福 - 后花园 1605

仓颉入门:基础数据类型

Java基础数据类型(char)(boolean)编程语言中的:整数类型、浮点类型、布尔类型、字符类型、字符串类型、元组类型、数组类型、区间类型、Unit类型、Nothing类型。

qq511029414的博客 1297

仓颉语言入门:核心概念与基础数据类型

仓颉语言是华为为鸿蒙生态打造的新一代全场景编程语言,主打,支持函数式、命令式、面向对象等多范式编程仓颉。作为鸿蒙原生应用开发的核心语言,掌握其基础数据类型是搭建复杂逻辑的第一步。本文将结合代码示例,介绍仓颉的核心概念与基础数据类型。

m0_74230209的博客 821

仓颉编程语言基础语法文档

仓颉(Cangjie)是华为开发的系统级编程语言,融合了C++的性能与Rust的安全性,专为嵌入式系统、云原生和高性能计算设计。使用`fn`关键字定义函数:```cangjiefn 加法(a: i32, b: i32) -> i32 {// 调用函数let 结果 = 加法(3, 5);println!("3 + 5 = {}", 结果);```

mljwdar的博客 875

仓颉编程语言整数类型详解:表示、操作与最佳实践

仓颉编程语言的整数系统提供了强大而灵活的工具集,从精确控制的8位整数到巨大的64位整数,从基础算术到位操作,应有尽有。通过合理选择整数类型、正确使用字面量表示法和操作符,开发者可以编写出高效、安全且易于维护的代码。记住类型安全原则和范围检查机制,将帮助您避免许多常见的整数相关错误,构建更健壮的程序。##仓颉##

AI 507
上一篇: APP加固攻防梳理
下一篇: 仓颉编程语言:浮点类型(基础数据类型)
懂你的大海
博客等级 码龄6年 9049粉丝 1381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值