固定大小字节数组之间的转换

固定大小字节数组,我们可以通过bytes1~32来进行声明,固定大小字节数组的长度不可变,内容不可修改。

pragma solidity ^0.4.4;
contract Test {bytes5 public g = 0x6869736565; //hiseefunction getBytesLength() constant returns (uint) {return g.length;}function gTobytes2() constant returns (bytes2) {return bytes2(g);}function gTobytes10() constant returns (bytes10) {return bytes10(g);}
}

说明:转长的字节数组,后面填0。转短的字节数组,截断后面的。

固定大小字节数组转动态大小字节数组

pragma solidity ^0.4.4;
contract Test {bytes5 public b = 0x6869736565; //hiseefunction jingZhuanDong() constant returns (bytes) {bytes memory b1 = new bytes(b.length);for(uint i=0;i<b.length;i++){b1[i] = b[i];}return b1;}
}

固定大小字节数组不能直接转换为string

动态大小字节数组转string

pragma solidity ^0.4.4;
contract Test {bytes5 public b = 0x6869736565; //hiseebytes names = new bytes(2);bytes name = new bytes(b.length);function Test() {names[0]=0x68;names[1]=0x69;for(uint i=0;i<b.length;i++){name[i] = b[i];}}function namesToString() constant returns (string) {return string(names);}function nameToString() constant returns (string) {return string(name);}
}

本身就是动态大小字节数组

固定大小字节数组转string,需先转动态字节数组后再转string

pragma solidity ^0.4.4;
contract Test {bytes5 public b = 0x6869736565; //hiseefunction bytes32ToString(bytes32 x) constant returns (string) {bytes memory bytesString = new bytes(32);uint charCount = 0;for(uint i=0;i<32;i++){byte char = byte(bytes32(uint(x)*2**(8*i)));//左移2的(8*i)次方,下同//   byte char = byte(bytes32(uint(x) << (8*i)));if(char!=0){bytesString[charCount] = char;charCount++;}}bytes memory bytesStringTrimmed = new bytes(charCount);for(i=0;i<charCount;i++){bytesStringTrimmed[i] = bytesString[i];}return string(bytesStringTrimmed);}}

Solidify实现一个智能合约9(数组和string之间的转换关系)相关推荐

  1. Solidify实现一个智能合约2(属性和行为的访问权限)

    属性的访问权限 属性:状态变量 属性的权限有三种:public internal private pragma solidity ^0.4.4;/* 属性的权限有三种:public internal ...

  2. Solidify实现一个智能合约12(字典/映射)

    语法 mapping(_keyType => _ValueType) 字典/映射其实就是一个一对一键值对存储关系. 举个例子:{age:18,stuId:10003,name:"His ...

  3. Solidify实现一个智能合约16(创建一个简单的代币)

    创建一个工程,新建一个EncryptedToken合约. 代码如下: pragma solidity ^0.4.4;contract EncryptedToken {uint INITIAL_SUPP ...

  4. Solidify实现一个智能合约10(一维数组和二维数组)

    固定长度的数组 固定长度类型数组的声明及其通过length方法获取数组长度求和. pragma solidity ^0.4.4; /* 数组一旦创建,长度不可变 但里面的内容可变 */ contrac ...

  5. Solidify实现一个智能合约7(固定大小字节数组)

    固定大小字节数组 固定大小字节数组可以通过bytes1,bytes2,bytes3,...,bytes32来进行声明.PS:byte的别名就是bytes1. bytes1只能存储1个字节,也就是二进制 ...

  6. Solidify实现一个智能合约17(创建BLC币)

    创建文件夹:mkdir BLC 进入后执行:truffle init 再执行:npm init,一直回车 再执行:npm install zeppelin-solidity hisee@liu:/me ...

  7. Solidify实现一个智能合约14(元组)

    定义 元组使用小括号,只需要在括号中添加元素,并使用逗号隔开即可. PS:元组中各个元素的类型可以不一样,但数组中的元素必须一样. 示例1 pragma solidity ^0.4.4; contra ...

  8. Solidify实现一个智能合约3(单继承与多继承)

    单继承 方法/函数的继承 代码示例 pragma solidity ^0.4.4;contract Animal {uint _weight;uint private _height;uint int ...

  9. Solidify实现一个智能合约11(结构体)

    结构体的声明 pragma solidity ^0.4.4;contract Students {struct Person {uint age;uint stuId;string name;}Per ...

最新文章

  1. java对象转json字符串日期格式_fastJSON字符串类型数据中的日期转换为Java bean的日期对象...
  2. 探寻阿里云服务器迈入2.0时代的技术要点
  3. python 将数组中取某一值的元素全部替换为其他元素的方法
  4. python基础知识~ 等值判断和码
  5. mysql错误修改数据_使用正则表达式快速修改mysql中错误的varchar类型数据
  6. TCP协议详解----Linux学习笔记
  7. rxjs里combineLatest operators的用法
  8. php 采集程序 宋正河
  9. Neural Architecture Search(NAS)强化学习寻找最优网络、NASNet、MNASNet
  10. AVR单片机(ATmega128)单片机运算乘除法大约所需时间
  11. PHP实现手机号码归属地查询
  12. 生命即便卑微如尘,即便困顿,依然是美景。
  13. 抖音上用计算机算66,抖音年龄计算器
  14. 有什么md5修改工具?快把这些工具收好
  15. python如何写生日快乐说说_抖音上很火的生日句子,适合过生日发的高逼格
  16. 苹果cms模板_苹果cms10好看的模板有那些?
  17. 北京交通拥堵问题及其建议
  18. SAP中MIGO收货时分清采购订单和订单收货的区别
  19. 财路网每日原创推送:区块链技术热下的“冷思考”
  20. keil5 中的wraing:no previous prototype SystemInit

热门文章

  1. scrapy数据保存为excel
  2. pcb走线电流计算器。
  3. POI和 EasyExcel对Excel的简单操作
  4. Android中探究抖音短视频的动态壁纸功能以及拓展功能使用
  5. PS基础操作-抠图与导出-学习记录
  6. WIN7 64位 OCX注册
  7. html中的电话号码
  8. 三国志战略版: PK赛季极致7队共存,白板老大都说已经研究到极限了
  9. 讯飞语音开发之语音唤醒
  10. 防水蓝牙耳机什么牌子好?超长续航防水蓝牙耳机