在学习solidity过程中,发现这门语言和之前学的C、C++、Java以及Python有很多不同之处,但目前我学到的来看,字节数组byte使用的很频繁,而且也有很多不一样的东西。
1byte=8位(XXXX XXXX)X为0或1,二进制表示
byte数组的类型有:bytes1,bytes2,。。。,bytes32,以八个位递增,即是对位的封装
举例
bytes1=uint8
bytes2=unit16
......
bytes32=unit256
目前我自己了解到的byte使用这么频繁大致是因为它能更好的表示16进制
举例:bytes1=0x6A,bytes1=(XXXX XXXX)正好四个表示一个16进制,以此类推
下面我们通过一些例子来看看byte的用法
1.下面声明了一个一字节以及一个4字节的变量
pragma solidity ^0.4.0;
contract test{
bytes1 num1 = 0x12; //0x是16进制的表示方法 12是一字节
bytes4 num2 = 0x12121212; //以此类推12 12 12 12 共四字节
}
如果我们想运行这个合约,点击这个变量就可以返回相应的结果可以使用下面这种方法:
pragma solidity ^0.4.0;
contract test {
bytes1 public num1 = 0x12;
bytes4