IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 一起学solidity写智能合约——整型(uint和int) -> 正文阅读

[区块链]一起学solidity写智能合约——整型(uint和int)

前言

整型一般用的比较多,会在各个合约中见到整型的存在,那么这个类型也是学习路上不可或缺的

环境:

remix编译器点我跳转

正文

我们在sol中遇得到很多类型为整型的数据,所以我们的sol提供了两种数据类型的整型:

有符号的整数(int):这里我们就可以理解为正负值的整数

无符号的整数(uint):无符号整数,这里就是只有正数和0的存在

为了有更好的内存控制sol提供了,int8、int16、int32等、一直到int256的无符号的整型类型

同样我们的无符号整数也是一样,uint8、uint16、uint32......uint256

那么在选择上面我们需要注意的是,0~256位的数据,我们使用uint8就可以了,那么存储有符号的负数到正数的-128~127我们使用int8,根据实际情况我们往上走即可。

有些同学会好奇,这个8、16、32......256是什么意思呢?

这里就是我们的二进制,因为我们的计算机是由0101的代码构成的所以底层存储逻辑就是二进制的,那么这里00000000这个在二进制中代表0,11111111这个在二进制中代表256,心细的同学会发现这个数字的个数是八位,就是这里,所以我们的存储就是这样子存储的

int与运算符

整数类型支持的运算符有三种比较运算符、位运算符、算数运算符

比较运算符

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

位运算符

&&(与)||(或)^(异或)~(位取反)

算数运算符

+-一元运算符“-”一元运算符“+”*/%**<<>>

一遍看下来估计就是左移右移的操作有问题这里解释一下

左移:a << b 可以理解为a乘以2的b次方

右移:a >> b 可以理解为a除以2的b次方

运算符使用方法如下:

uint256 public _uintNum = 12345; //整数? ? ? ? ? ? ? ? ? ? ? ? ?结果:12345

uint256 public _uintNum1 = _uintNum + 1; //加法? ? ? ? ? ? 结果:12346

uint256 public _uintNum2 = 2**2; // 指数? ? ? ? ? ? ? ? ? ? ? ? ? 结果:4

uint256 public _uintNum3 = 7 % 2; //取余? ? ? ? ? ? ? ? ? ? ? ? 结果:1

bool public _boolnum = _ uintNum2 > _uintNum3;//判断 结果: true

注意事项

声明方式

int8 a = -1;

uint16 b?= 1;

uint c ;

int d ;

整数运算时如果遇到常量就会被截断,如果是常量就不会,常量就是在定义时就有值且不改变的量,如果遇到0的时候是非法的,会报错。

左右位移就是移二进制的位置,现在我们有10000这样一位二进制数换成十进制就是32,那么我们右移就是1000,左移同理

不能进行负以为,就是不能变成负的

负数不能进行指数操作就是“**”

pragma solidity ^0.4.23; //表示编译器的版本,^代表大版本为4即可
contract UintTest{ //创建一个合约 自定义合约名为UintTest
uint a = 10; // 定义一个变量a为10
uint b = 2; // 定义一个变量b为2
function getUint() public view returns(uint){// 定义一个函数 函数名为getUint 权限为公共 只读 返回一个uint类型 
uint sum = a ** b + 3 % 2;// 定义一个uint类型使用运算符a的b次方加3取余2最后的结果为101
return sum;// 返回sum
}
}

?

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:39:00  更:2022-10-17 12:40:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年2日历 -2024/2/29 7:36:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码