이더리움 solidity 베이스 3
15286 단어 블록체인 학습-이태방
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 ), , 0, 0 。
byte uint 。 、、 (*╹▽╹*)。