主页 > imtoken怎么退出账号 > 学习solidity一起写智能合约——整型(uint和int)

学习solidity一起写智能合约——整型(uint和int)

imtoken怎么退出账号 2023-06-06 07:26:08

前言

整数一般用的比较多,在各种合约中都会看到整数的存在,所以在学习的路上也少不了这个类型

环境:

混音编译器点我跳转

文本

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

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

Unsigned integer(uint):无符号整数,这里是只存在正数和0

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

我们的无符号整数也是如此,uint8、uint16、uint32 ... uint256

那么我们需要注意上面的选择。 对于0~256位的数据,我们可以使用uint8。 然后我们用int8把有符号的负数存到正数-128~127。 根据实际情况,我们可以上去。 能。

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

这里是我们的二进制以太坊符号,因为我们的计算机是由0101编码组成的,所以底层存储逻辑是二进制的,所以这里00000000用二进制表示0,11111111用二进制表示256。 细心的同学会发现这个数是8,就在这里,所以我们的存储是这样存储的

int AND 运算符

整数类型支持的运算符包括三种比较运算符、位运算符和算术运算符

比较运算符

(超过)

按位运算符

&&(和)

|| (或者)

^(异或)

~(位反转)

算术运算符

+

-

一元运算符“-”

一元运算符“+”

*

/

%

**

>

又看了一遍,估计是左右移动的操作有问题。 这是一个解释

左移: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

防范措施