| |
|
开发:
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,左移同理 不能进行负以为,就是不能变成负的 负数不能进行指数操作就是“**”
? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/25 16:49:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |