Solidify实现一个智能合约4(值类型)

bool类型

true  和 false

运算符:

!逻辑非
&&逻辑与
==等于
||逻辑或
!=不等于

代码示例:

pragma solidity ^0.4.4;

contract Test {

  uint a;
  uint b;

  bool c;

  function Test() {
    a = 100;
    b = 200;
    c = true;
  }

  //! 逻辑非
  function fei() constant returns (bool) {
    return (!c);
  }
  //&& 逻辑与
  //== 判断是否等于,返回bool类型
  function luojiyu() constant returns (bool) {
    return a == b && c;
  }
  // || 逻辑或
  // != 不等于,返回bool类型
  function luojihuo() constant returns (bool) {
    return a != b || c;
  }
}

运行结果:

整型

int8  int16  Int24 ....int256

uint8  uint16 uint24....uint256

int默认int256,uint默认uint256。

int表示有符号,有正负之分。uint表示无符号,只有0和正数

int8的范围为11111111~0111111,第一个1或0表示正负号。int8的范围为-127~127

uint8的范围为00000000~11111111,表示0~255。(无正负号)

Var字符

pragma solidity ^0.4.4;

contract Test {

  function testVar() constant returns (uint8) {
    uint8 a = 100;
    var b = a;//var 的类型由第一次赋值的类型确定。
    return b;
  }

  function testVar1() constant returns (uint) {
    uint a;
    for(uint8 i=0; i<255; i++){ //i<=255会运行错误,出现溢出。
      a = i;
    }
    return a;
  }
}

说明:var 的类型由第一次赋值的类型确定。

支持的运算符

比较云算法:<=   <   ==   !=   >=   >

pragma solidity ^0.4.4;

contract Test {

  uint a;
  uint b;

  function Test() {
    a = 100;
    b = 120;
  }

  // <= < == != >= >
  function test1() constant returns (bool) {
    return a <= b;
  }
  function test2() constant returns (bool) {
    return a < b;
  }
  function test3() constant returns (bool) {
    return a == b;
  }
  function test4() constant returns (bool) {
    return a != b;
  }
  function test5() constant returns (bool) {
    return a >= b;
  }
  function test6() constant returns (bool) {
    return a > b;
  }
  
}

运行结果

位运算符:& 与,| 或,^ 异或,~ 非

pragma solidity ^0.4.4;

contract Test {

  uint8 a;
  uint8 b;

  function Test() {
    a = 5; //0000 0101
    b = 8; //0000 1000
  }

  // & 与,| 或,^ 异或,~ 非

  // & 遇0则为0,
  function test1() constant returns (uint8) {
    return a & b; //0000 0000 =0
  }
  // | 遇1则为1,
  function test2() constant returns (uint8) {
    return a | b; //0000 1101 =13
  }
  // ^ 相同为0,不同为1
  function test3() constant returns (uint8) {
    return a ^ b; //0000 1101 =13
  }
  // ~ 取反。0变1,1变0。
  function test4() constant returns (uint8) {
    return ~ b; // 1111 0111 =247
  }
  
}

数学运算符:+,-,一元运算符:+,*,/,(%求余),(**次方),(<< 左移),(>> 右移)。

pragma solidity ^0.4.4;

contract Test {

  uint8 a;
  uint8 b;

  function Test() {
    a = 5; // 0000 0101
    b = 3; 
  }

  // +,-,一元运算符:+,*,/,(%求余)

  function test1() constant returns (uint8) {
    return a + b; // 8
  }
  function test2() constant returns (uint8) {
    return a - b; // 2
  }
  function test3() constant returns (uint8) {
    return a * b; // 15
  }
  function test4() constant returns (uint8) {
    return  a / b; // 1
  }
  function test5() constant returns (uint8) {
    return  a % b; // 2
  }
  function test6() constant returns (uint8) {
    return  a ** b; // 125
  }

  function test7() constant returns (uint8) {
    return  a << 2; // 0001 0100 =20
  }
  function test8() constant returns (uint8) {
    return  a >> 2; // 0000 0001 =1
  }
}

solidify目前没有支持double/float类型,如果5/3会得到1,即无条件舍去。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值