byte类型
有byte bytes1 bytes2 … bytes32
特殊的有byte == bytes1
后面的数字代表占了多少字节。1个字节在内存中占了8位
性质
固定字节数组不能修改长度和内容
字节一般用16进制来存储
16进制中的1个数字代表占了4位。
1 2 3 4 5 6 7 |
bytes1 public num1 = 0x6a; //转换为10进制:106 bytes2 public num2 = 0x6a6f; //转换为10进制:27247 bytes6 public num3 = 0x6a6f6e736f6e; bytes1 public a = 0x6a;//转换为2进制:0110 1010 bytes1 public b = 0x6f;//转换为2进制:0110 1111 |
字节可以有长度属性
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 |
// 0110 1010 // 0110 1111 //&0110 1010 106 0x6a //|0110 1111 111 0x6f //^0000 0101 5 0x05 //~1001 0101 149 0x95 //<1101 0100 212 0xd4 //>0011 0101 53 0x35 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{ //0x6a6f6e736f6e bytes1 public num1 = 0x6a; //106 bytes2 public num2 = 0x6a6f; //27247 bytes6 public num3 = 0x6a6f6e736f6e; bytes1 public a = 0x6a;//0110 1010 106 bytes1 public b = 0x6f;//0110 1111 111 function getlength() view public returns(uint,uint,uint){ return (num1.length,num2.length,num3.length); } // function changeLength() public { // num1.length = 9; // } 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; } // 0110 1010 // 0110 1111 //&0110 1010 106 0x6a //|0110 1111 111 0x6f //^0000 0101 5 0x05 //~1001 0101 149 0x95 //<1101 0100 212 0xd4 //>0011 0101 53 0x35 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协议 许可协议。转载请注明出处!
郑建勋(jonson)区块链工程师 & Web工程师
灾难总是接踵而至,这正是世间的常理。你以为只要哭诉一下,就会有谁来救你吗?如果失败了,就只能说明我不过是如此程度的男人。