首页 > 其他分享 >Solidity-变量和数据类型[基本类型]

Solidity-变量和数据类型[基本类型]

时间:2023-05-16 12:45:26浏览次数:57  
标签:false 变量 Solidity 数据类型 地址 bool 类型 true 字节

在solidity语言中,变量和数据类型分为三类:基本类型(bool、int、address等),复合类型(array、struct、mapping等)和特殊类型(enum、function、modifier等)。下面我们来对”基本类型“部分进行详细学习。

基本类型

布尔类型(bool)

布尔类型(bool)占用1个字节的存储空间,即8个比特位,该类型只能取两个值:true和false。其中,0表示false,1表示true,但Solidity中的布尔类型与其他语言中的布尔类型略有不同,比如C语言中的布尔类型通常占用1个字节,但只有0表示false,而其他非零值都可以表示true。

    bool _Bool;     //未初始化的bool变量_Bool
   bool _True = true;      //初始化为true的bool变量_True
   bool _False = false;    //初始化为false的bool变量_False

Solidity中的布尔类型同样支持逻辑运算。

“与”运算(and)使用"&&"运算符,只有条件都为"true"的时候,结果才为"true",否则为"false"。

“或”运算(or)使用"||"运算符,至少有一个条件为"true"的时候,结果便为"true",否则为"false"。

”非“运算(not)使用"!"运算符,对bool值取反。

”等于“使用"==",”不等于“使用"!="。

    //定义三个bool变量
   bool _Bool1 = true;
   bool _Bool2 = true;
   bool _Bool3 = false;
   
   //进行逻辑运算
   bool _Bool4 = _Bool1 && _Bool2;     //"与"运算,条件都为"true",结果为"true"
   bool _Bool5 = _Bool1 && _Bool3;     //"与"运算,有一条件为"false",结果为"true"
   bool _Bool6 = _Bool1 && _Bool3;     //"或"运算,至少有一个条件为"true",结果为"true"
   bool _Bool7 = !_Bool1;      //"非"运算,取反
   bool _Bool8 = _Bool1 == _Bool2;     //"等于",满足为"true"
   bool _Bool9 = _Bool1 != _Bool3;     //"不等于",满足为"true"

整型(int/uint)

在Solidity中,整数类型分为有符号整数和无符号整数,并且可以声明数值位数。

有符号整数型(int)

有符号整数型(int)可以表示正数和负数,在不声明类型长度的情况下,"int"默认长度为256位,也可以指定位数,如:int8, int16, int 32, int256等。

无符号整数型(uint)

无符号整数型(uint)只能表示正数,在不声明类型长度的情况下,"uint"默认长度为256位,也可以指定位数,如:uint8, uint16, uint 32, uint256等。

需要注意的是,声明的位数范围是8位到256位,且必须是8的倍数,需要根据需求来设置范围用以节省存储空间。

    //定义整型变量
   int8 _Num1 = 10;    //8位有符号整型,取值为10
   int256 _Num2 = -10000;      //256位有符号整型,取值为-10000
   uint32 _Num3 = 100;     //32位无符号整型,取值为100
   uint128 _Num4 = 1000;      //128位无符号整型,取值为1000

关于整型的运算符有:

算数运算符:+,-,*,/,%(取余),**(幂)。

    //整型的运算
   int256 _Number1 = 10;
   int256 _Number2 = _Number1 + 100;   //整数的基本运算
   int256 _Number3 = _Number1 ** 2;    //幂运算
   int256 _Number4 = _Number1 % 3;     //取余

比较运算符(计算返回布尔值):<=,<,==,!=,>=,>。

    bool _NumBool = _Number1 < _Number2;    //比较运算返回bool值

地址类型(address)

地址类型(address)是Solidity中用来表示以太坊地址的数据类型。用于处理以太坊交易,与其他合约交互和验证身份等功能。

该类型用20字节大小的空间存储以太坊地址,地址可以是外部账户地址,也可以是智能合约地址。地址类型具有成员,如"balance"和"transfer",前者返回地址中以太坊余额,后者将以太坊从当前地址发送到指定地址。(我们将在后面对地址类型进行详细的学习,这里只做简单说明。)

    //地址类型
  address _Address = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4; //初始化一个地址
  uint256 _Balance = _Address.balance;   //地址类型的成员"balance",返回该地址的以太坊余额

字节类型(byte/bytes)

在Solidity中,字节类型分为定长(byte,bytes8等)和不定长(bytes),前者属于数值类型,后者属于引用类型。字节类型的使用与数组类似,也称为字节数组。

    //定长的字节数组
   bytes16 _Bytes16 = "n0hackers";   //定义一个字节数组用于存储字符串"n0hackers"
   bytes1 _Byte = bytes16[0];    //单独存储_Bytes16中的第一个字节的内容


标签:false,变量,Solidity,数据类型,地址,bool,类型,true,字节
From: https://www.cnblogs.com/n0hackers/p/17405024.html

相关文章

  • Xcode中常见的环境变量
    为当前项目添加.pch文件新建.pch文件,pch文件的命名规则:“工程名字-Prefix.pch”,当然也可以不遵守这个规则随意命名指定pch文件所在的位置(既然我是新建的pch文件,Xcode为何不直接给我设置pch文件的路径,还要开发者做这件事,真是不人性化),在BuildSettings中搜索PrefixHeader,然后在该......
  • Java初学者之数据类型
    今天下午看了点数据类型的东西,来这里总结一下。顺便锻炼一下自己的思维能力.首先数据类型的分类:1. 基本数据类型2.引用数据类型基本数据类型有八种:整数型:byte(1B)short(2B)int(4B)long(8B),小数型:float(4B),double(8B),布尔值:true,false(1bit),字符型:char(2B)引用数......
  • 离散型随机变量
    第87炼离散型随机变量分布列与数字特征一、基础知识:(一)离散型随机变量分布列:1、随机变量:对于一项随机试验,会有多个可能产生的试验结果,则通过确定一个对应关系,使得每一个试验结果与一个确定的数相对应,在这种对应关系下,数字随着每次试验结果的变化而变化,将这种变化用一个变量进行......
  • 了解Python的基本数据类型
    引入 我们学习变量是为了让计算机能够记忆事物的某种状态,而变量的值就是用来存储事物状态的,很明显事物的状态是分成不同种类的(例如水的液态,气态和固态),所以变量值也应该有不同的类型 一、数字类型int(整型)float(浮点型)不可变数据类型int,整型,是没有小数点的数字......
  • < Python全景系列-2 > Python数据类型大盘点
    <Python全景系列-2>Python数据类型大盘点欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。Py......
  • 利用无限潜在特征选择ILFS算法对分类特征变量做特征重要性排序,实现特征选择。
    利用无限潜在特征选择ILFS算法对分类特征变量做特征重要性排序,实现特征选择。通过重要性排序图,选择重要的特征变量,以期实现数据降维的目的。程序直接替换数据就可以用,程序内有注释,方便学习和使用。程序语言为matlab。ID:3530682564934266......
  • 麻雀优化算法SSA优化广义神经网络GRNN做多特征输入,单个因变量输出的拟合预测模型。
    麻雀优化算法SSA优化广义神经网络GRNN做多特征输入,单个因变量输出的拟合预测模型。程序内注释详细直接替换数据就可以用。程序语言为matlab。ID:6630682979651914......
  • 基于分位数随机森林预测模型QRF建立多特征输入单个因变量输出的拟合预测模型。
    基于分位数随机森林预测模型QRF建立多特征输入单个因变量输出的拟合预测模型。程序内注释详细,直接替换excel数据就可以使用。程序语言为matlab。ID:1730681783229866......
  • 利用最大互信息系数MIC对回归拟合预测数据集做特征自变量的选择,实现降低数据纬度的目
    利用最大互信息系数MIC对回归拟合预测数据集做特征自变量的选择,实现降低数据纬度的目的,简化数据复杂度。程序内注释详细,直接替换excel数据就可以用。程序语言为matlab。可免费指导替换数据,无售后讲解。。ID:2425680290257538......
  • 广义神经网络GRNN做多特征输入,单个因变量输出的拟合预测模型。
    广义神经网络GRNN做多特征输入,单个因变量输出的拟合预测模型。程序内注释详细直接替换数据就可以用。程序语言为matlab。不会替换数据的可以免费指导替换数据。。ID:3730680119955199......