实验1.7 整形字面量

《道德经》第七十七章有言“天之道,损有余而补不足;人之道则不然,损不足以奉有余。”Solidity中的运算像是“天道”,默默地为有限的存储空间计算着超越其本身能够存储的数字的运算。从而理解Solidity的数字运算与数字存储是两个不相关的,相辅相成的关系。

实验目的

通过与其他编程语言之间的运算结果对比,来理解Solidity函数对运算数字的范围与类型是否有要求。

实验要求

1.查看实验1中的代码,判断哪些函数将会报错,将你觉得会报错的函数填写进注释中的括号内。然后进行编译,查看你选择的函数是否报错。思考为什么会报错,Solidity语言对运算中的数字有哪些要求与限制?

2.现在如果你的电脑有其他编程语言比如java,请打开编辑器并用实验2中的方法定义3个整数类型,比较java语言和solidity语言之间结果的不同。

以下是本次实验所用的测试代码,请使用remix编辑器进行该实验。

//实验1
// SPDX-License-Identifier: GPL-3.0
pragma solidity^0.8.0;
contract helloworld{
//哪些函数将编译失败? (函数1,函数2,还是函数3?)
   	function intergerTest1() public view returns(uint){
      uint num = 2/4;
      return num ;
  	}
function intergerTest2() public view returns(uint){
      uint num = 2/4*10000;
      return num ;   
  	}
function intergerTest3() public view returns(uint){
      uint num = 2/6*10000;
      return num ;   
  	}
}
//实验2
uint num1 = (2*800+1)-2*800;
uint num2 = 2/4*10000;
uint num3 = 2/4;

下面是本次实验配套的视频教程: