创建一个合约,编写一个函数定义新变量(使用bytes1,bytes2,bytes3定义3个变量),并使用序号访问定长字节数组;编写相关的函数验证定长字节数组支持的运算符(比较运算符、位运算符)。
时间: 2023-05-26 22:06:48 浏览: 72
pragma solidity ^0.8.0;
contract FixedByteArray {
bytes1 public byte1;
bytes2 public byte2;
bytes3 public byte3;
constructor() {
byte1 = 0x12; //定义一个bytes1类型的变量byte1,赋值为0x12
byte2 = 0x1234; //定义一个bytes2类型的变量byte2,赋值为0x1234
byte3 = 0x123456; //定义一个bytes3类型的变量byte3,赋值为0x123456
}
function getByte1(uint8 index) public view returns (byte1) {
return byte1[index];
}
function getByte2(uint8 index) public view returns (byte) {
return byte2[index];
}
function getByte3(uint8 index) public view returns (byte) {
return byte3[index];
}
function checkEqual(bytes2 b1, bytes2 b2) public pure returns (bool) {
return b1 == b2;
}
function checkGreater(bytes2 b1, bytes2 b2) public pure returns (bool) {
return b1 > b2;
}
function checkAnd(bytes2 b1, bytes2 b2) public pure returns (bytes2) {
return b1 & b2;
}
function checkOr(bytes2 b1, bytes2 b2) public pure returns (bytes2) {
return b1 | b2;
}
function checkXor(bytes2 b1, bytes2 b2) public pure returns (bytes2) {
return b1 ^ b2;
}
}
阅读全文