当前位置: 首页 > news >正文

移动网站建设是什么意思沈阳网站维护公司

移动网站建设是什么意思,沈阳网站维护公司,北京响应式网站,安庆什么网站好小事做在数学运算过程中假如超过了长度则值会变成该类型的最小值#xff0c;如果小于了该长度则变成最大值 数据上溢 uint8 numA 255; numA;uint8的定义域为[0,255]#xff0c;现在numA已经到顶了#xff0c;numA会使num变成0(由于256已经超过定义域#xff0c;它会越过256…  在数学运算过程中假如超过了长度则值会变成该类型的最小值如果小于了该长度则变成最大值 数据上溢 uint8 numA 255; numA;uint8的定义域为[0,255]现在numA已经到顶了numA会使num变成0(由于256已经超过定义域它会越过256变成0)即数据发生上溢(越过上边界叫上溢)。255 -- 256 --0 上溢。 数据下溢 uint8 numB 0; numB--;numB本身是低水位线现在numB-- 会使num变成255(由于-1已经超过定义域所以它会越过-1变成255)即数据发生下溢(越过下边界叫下溢)。0– -1 -- 255 下溢。    可以通过引用 OpenZeppelin的 SafeMath v2.5.x 库或者自定义一个SafeMath合约来避免该问题。     库是 Solidity 中一种特殊的合约它给原始数据类型增加了一些方法: add() sub() mul() 以及 div()。     先引用或者import SafeMath库然后声明 using SafeMath for uint256 再通过变量名来调用这些方法。   方法1 导入库import SafeMath   给变量使用库 using SafeMath for 变量类型 传递参数给库中add函数 uint e255; e参数1.add(参数2)           底层是 参数1传给a参数2传给b  方法2 也可以自己创建一个库用library声明而不是contract library SafeMath { func add(uint8 a,uint b) internal pure returns(uint 8){ 检验加法        uint8 ab;        assert(ca);        assert()函数可以用来判断参数是否成立若不成立则弹出一个错误        return c;}} 试例 import ./safemath.sol; //1)引用库 using SafeMath for uint256; //2)声明指定的类型uint256 a 5; uint256 b a.add(3); // 5 3 8 //3)用变量名来调用方法 uint256 c a.mul(2); // 5 * 2 10库合约源码 pragma solidity ^0.4.18;/*** title SafeMath* dev Math operations with safety checks that throw on error*/ library SafeMath {/*** dev Multiplies two numbers, throws on overflow.*/function mul(uint256 a, uint256 b) internal pure returns (uint256) {if (a 0) {return 0;}uint256 c a * b;assert(c / a b);return c;}/*** dev Integer division of two numbers, truncating the quotient.*/function div(uint256 a, uint256 b) internal pure returns (uint256) {// assert(b 0); // Solidity automatically throws when dividing by 0uint256 c a / b;// assert(a b * c a % b); // There is no case in which this doesnt holdreturn c;}/*** dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).*/function sub(uint256 a, uint256 b) internal pure returns (uint256) {assert(b a);return a - b;}/*** dev Adds two numbers, throws on overflow.*/function add(uint256 a, uint256 b) internal pure returns (uint256) {uint256 c a b;assert(c a);return c;} }/*** title SafeMath32* dev SafeMath library implemented for uint32*/ library SafeMath32 {function mul(uint32 a, uint32 b) internal pure returns (uint32) {if (a 0) {return 0;}uint32 c a * b;assert(c / a b);return c;}function div(uint32 a, uint32 b) internal pure returns (uint32) {// assert(b 0); // Solidity automatically throws when dividing by 0uint32 c a / b;// assert(a b * c a % b); // There is no case in which this doesnt holdreturn c;}function sub(uint32 a, uint32 b) internal pure returns (uint32) {assert(b a);return a - b;}function add(uint32 a, uint32 b) internal pure returns (uint32) {uint32 c a b;assert(c a);return c;} }/*** title SafeMath16* dev SafeMath library implemented for uint16*/ library SafeMath16 {function mul(uint16 a, uint16 b) internal pure returns (uint16) {if (a 0) {return 0;}uint16 c a * b;assert(c / a b);return c;}function div(uint16 a, uint16 b) internal pure returns (uint16) {// assert(b 0); // Solidity automatically throws when dividing by 0uint16 c a / b;// assert(a b * c a % b); // There is no case in which this doesnt holdreturn c;}function sub(uint16 a, uint16 b) internal pure returns (uint16) {assert(b a);return a - b;}function add(uint16 a, uint16 b) internal pure returns (uint16) {uint16 c a b;assert(c a);return c;} }library SafeMath8 {function mul(uint8 a, uint8 b) internal pure returns (uint8) {if (a 0) {return 0;}uint8 c a * b;assert(c / a b);return c;}function div(uint8 a, uint8 b) internal pure returns (uint8) {// assert(b 0); // Solidity automatically throws when dividing by 0uint8 c a / b;// assert(a b * c a % b); // There is no case in which this doesnt holdreturn c;}function sub(uint8 a, uint8 b) internal pure returns (uint8) {assert(b a);return a - b;}function add(uint8 a, uint8 b) internal pure returns (uint8) {uint8 c a b;assert(c a);return c;} } 1.自增修改 简单变量 uint numA; numA;优化后  import ./safemath.sol; using SafeMath for uint256;uint numA; //numA; numA numA.add(1);map mapping(address uint) ownerAppleCount; ownerAppleCount[msg.sender];优化后  import ./safemath.sol; using SafeMath for uint256;mapping(address uint) ownerAppleCount; //ownerAppleCount[msg.sender]; ownerAppleCount[msg.sender] ownerAppleCount[msg.sender].add(1);结构体  struct Apple {uint32 id; uint weight;string color; } Apple zhaoApple Apple(100,150,red); zhaoApple.weight;优化后  import ./safemath.sol; using SafeMath for uint256; using SafeMath32 for uint32;struct Apple {uint32 id; uint weight;string color; } Apple zhaoApple Apple(100,150,red); //zhaoApple.weight; zhaoApple.weight zhaoApple.weight.add(1);2.自减修改 简单变量 uint8 numB; numB--;优化后  import ./safemath.sol; using SafeMath8 for uint8;uint8 numB; //numB--; numB numB.sub(1);
http://www.hkea.cn/news/14287370/

相关文章:

  • 有做货 物的网站吗少女たちよ在线观看动漫4
  • 做网站应该用什么配置的电脑企业网站群建设规范
  • 网站建设费能抵扣吗网站建设有证书吗
  • 广东seo网站推广代运营中国建筑招聘2022
  • 深圳网站建设公司网络服务百度网站排名全掉
  • 宣传 网站建设方案seo推广排名重要吗
  • 织梦网站模板还原的文件在哪里免费咨询问题
  • 手机淘宝客网站建设建设部网站39文件
  • 织梦网站会员功能旅游网站网页设计
  • 织梦wap网站模板科丰化工东莞网站建设
  • 阿里云虚拟主机网站吗宁波专业建设网站建站公司
  • 贺卡制作网站监控网站开发
  • 阜阳做网站怎么免费给网站做收录
  • 太原网站建设公司哪家好浏览广告赚钱一天100元
  • 什么是可信网站怎么设计网页模板
  • 如何检查网站死链网站建设夬金手指花总
  • 什么专业的会做网站高端商务经纪网站建设
  • 台州椒江网站建设公司中国建设银行网站能解密码
  • 交易平台网站怎么做WordPress的Ajax插件
  • 做淘宝要用到哪些网站机械设备网站建设
  • 长春做网站多少钱国际品牌的广州网站建设
  • 如何制作一个网页网站怎样运营网站
  • 网站做接口朝阳网站seo
  • 网站建设公司的优势房地产销售入门培训
  • 广州 网站制作 网站推广南阳免费网站建设
  • 做网站IP企业公司简介
  • 在线购物商城网站建设一万并发量的视频网站建设
  • 网站想举报怎么做创业平台app
  • 如何快速学会做网站傻瓜式网站建设
  • 网站的注册宿迁市建设局投诉网站首页