이더리움 solidity 베이스 3

고정 크기 바이트 배열
pragma solidity ^0.4.5;

contract pcl {
    bytes1 _name1;      //          bytes1-bytes32   ,byte    bytes1
    bytes3 _name3;
    
    function pcl() {
        _name1=0x1f;
        _name3=0x1f2b3c;
    }
    
    function getpcl() constant returns (bytes3){
        return ~_name3<<2;
    }
    
    function suoying() constant returns (bytes1){
        return _name3[1];
    }
    
    function changdu() constant returns (uint){
        return _name3.length;   
    }
}

동적 크기 바이트 그룹의 성명, 변경, 비우기,push
pragma solidity ^0.4.5;

contract pcl {
    string public name='aaaaa';        //string              。   length  ,         ,      bytes     bytes         。
    //                bytes       length    。(    ,     constant modifi)
    bytes public bname=new bytes(5);  //           new bytes   。                   string。

    function getname(bytes1 a) {        //    ,        ,       bytes   。      gas  。
        bytes(name)[0]=a;
    }
    
    function getlenght() constant returns (uint256){
        return bytes(name).length;
    }

    function clear(uint len){
        bname.length=len;
    }

    function getNameLength(bytes1 ta){
        bytes(name)[0]=ta;
    }

    function pushTest(bytes1 a) {
        bname.push(a);
    }
}

고정 크기 바이트 그룹 사이의 변환 분실
pragma solidity ^0.4.5;

contract pcl {
    bytes3 public _bname1=0xa1;   //                ,      0       0x0000a1.    bytes1     。  0xa1      1   。
    bytes2 public _bname=0xa1b1;

    function pcl(bytes2 name) {
        _bname=name;
    }

    function  zhuanhuan_1() constant returns (bytes1){   //    ,      
        return bytes1(_bname);
    }

    function zhuanhuan_3() constant returns(bytes3) {    //    ,     0
        return bytes3(_bname);
    }
}

고정 바이트 그룹 동적 바이트 그룹
pragma solidity ^0.4.5;

contract pcl {
    bytes3 public _bname=0x1a2b3c;

    function zhuanhuan_1() constant returns (bytes){
        bytes memory t=new bytes(3);        //        t            ,     memory。            storage        。**Mark**
        for (uint i=0;i<_bname.length;i++){
            t[i]=_bname[i];
        }
        return t;
    }
}

동적 크기 바이트 그룹 회전string
pragma solidity ^0.4.5;

contract pcl {
    bytes public _bname=new bytes(1);
    bytes3 public name=0xe892b2;
    
    function pcl(){
        _bname=' ';
    }
    function zhuanhuan() constant returns (string) {        //            string    
        return string(_bname);
    }
    
    function zhuanhuan_1() constant returns (string){       //           string
        for (uint i;i<name.length;i++){
            _bname[i]=name[i];
        }
        return string(_bname);
    }
}
             string      。       。
byte    byte1  
               。
                 (8*n         ),    ,     00byte uint             。 、、   (*╹▽╹*)

좋은 웹페이지 즐겨찾기