![solidity智能合约[9]-字节数组与运算](/default/index/img?u=aHR0cHM6Ly9jYWNoZS55aXN1LmNvbS91cGxvYWQvaW5mb3JtYXRpb24vMjAyMDAzMTIvNjUvMjM5MDQ5LmpwZw==&w=245&h=&w=700)
byte类型
有byte bytes1 bytes2 … bytes32
特殊的有byte == bytes1
后面的数字代表占了多少字节。1个字节在内存中占了8位
性质
固定字节数组不能修改长度和内容
字节一般用16进制来存储
16进制中的1个数字代表占了4位。
1 2 3 4 5 6 7
|
bytes1 public num1 = 0x6a; bytes2 public num2 = 0x6a6f;
bytes6 public num3 = 0x6a6f6e736f6e;
bytes1 public a = 0x6a; bytes1 public b = 0x6f;
|
字节可以有长度属性
1 2 3
|
function getlength() view public returns(uint,uint,uint){ return (num1.length,num2.length,num3.length); }
|
字节可以比较大小
不同类型的字节也可以比较大小
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
function test1() public view returns(bool){ return a>b; }
function test2() public view returns(bool){ return a>=b; }
function test3() public view returns(bool){ return a<b; } function test4() public view returns(bool){ return a<=b; }
function test5() public view returns(bool){ return a==b; }
function test6() public view returns(bool){ return a!=b; }
function test7() public view returns(bool){ return num2 >num1; }
|
字节可以进行位运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
function weiTest1() public view returns(bytes1){ return a & b; } function weiTest2() public view returns(bytes1){ return a | b; } function weiTest3() public view returns(bytes1){ return a ^ b; } function weiTest4() public view returns(bytes1){ return ~a; }
function weiTest5() public view returns(bytes1){ return a<<1; } function weiTest6() public view returns(bytes1){ return a >>1; }
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
pragma solidity ^0.4.23;
contract bytesTest{ bytes1 public num1 = 0x6a; bytes2 public num2 = 0x6a6f;
bytes6 public num3 = 0x6a6f6e736f6e;
bytes1 public a = 0x6a; bytes1 public b = 0x6f;
function getlength() view public returns(uint,uint,uint){ return (num1.length,num2.length,num3.length); }
function test1() public view returns(bool){ return a>b; }
function test2() public view returns(bool){ return a>=b; }
function test3() public view returns(bool){ return a<b; } function test4() public view returns(bool){ return a<=b; }
function test5() public view returns(bool){ return a==b; }
function test6() public view returns(bool){ return a!=b; }
function test7() public view returns(bool){ return num2 >num1; }
function weiTest1() public view returns(bytes1){ return a & b; } function weiTest2() public view returns(bytes1){ return a | b; } function weiTest3() public view returns(bytes1){ return a ^ b; } function weiTest4() public view returns(bytes1){ return ~a; }
function weiTest5() public view returns(bytes1){ return a<<1; } function weiTest6() public view returns(bytes1){ return a >>1; }
}
|
本文链接: https://dreamerjonson.com/2018/11/14/solidity-9/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
![solidity智能合约[9]-字节数组与运算 solidity智能合约[9]-字节数组与运算](/default/index/img?u=aHR0cHM6Ly9jYWNoZS55aXN1LmNvbS91cGxvYWQvaW5mb3JtYXRpb24vMjAyMDAzMTIvNjUvMjM5MDQ5LmpwZw==)