solidity 十六进制字符串转十六进制bytes
pragma solidity ^0.4.16;
contract Metadata {
    // 十六进制字符串转换成bytes
    function hexStr2bytes(string data)returns (bytes){
        uint _ascii_0 = 48;
        uint _ascii_A = 65;
        uint _ascii_a = 97;
        bytes memory a = bytes(data);
        uint[] memory b = new uint[](a.length);
        for (uint i = 0; i < a.length; i++) {
            uint _a = uint(a[i]);
            if (_a > 96) {
                b[i] = _a - 97 + 10;
            }
            else if (_a > 66) {
                b[i] = _a - 65 + 10;
            }
            else {
                b[i] = _a - 48;
            }
        }
        bytes memory c = new bytes(b.length / 2);
        for (uint _i = 0; _i < b.length; _i += 2) {
            c[_i / 2] = byte(b[_i] * 16 + b[_i + 1]);
        }
        return c;
    }
}
solidity 智能合约 从公钥得到账户地址
function pk2account(address _address) public returns (address) {
        uint160 m = 0;
        uint160 tmp = 0;
        m = uint160(_address);
        tmp >>= 80;
        tmp <<= 80;
        m-=tmp;
        return address(m);
    }
												
											solidity 十六进制字符串转十六进制bytes的更多相关文章
- ios十进制、十六进制字符串,byte,data等之间的转换
		
十进制->十六进制 Byte bytes[]={0xA6,0x27,0x0A}; NSString *strIdL = [NSStringstringWithFormat:@"%@& ...
 - 十六进制字符串转化为byte数组
		
工作上有这样的需求之前找了好多都不行,好不容易有个可以的赶紧留下来. 原址:http://blog.163.com/roadwalker@126/blog/static/113561841201013 ...
 - 字符串、十六进制、byte数组互转
		
import java.io.ByteArrayOutputStream; public class HexUtil { /** * @param args */ public static void ...
 - iOS -- 十进制、十六进制字符串,byte,data等之间的转换
		
十进制->十六进制 Byte bytes[]={0xA6,0x27,0x0A}; NSString *strIdL = [NSStringstringWithFormat:]]]; 十六进制-& ...
 - Java byte和hex十六进制字符串转换
		
在Java中字符串由字符char组成, 一个char由两个byte组成, 而一个byte由八个bit组成, 一个十六进制字符(0-F)实际上由4个字节byte即可表达, 因此, 从字节数组到十六进制字 ...
 - 字符串、bute[]数组和十六进制字符串的相互转换
		
1.字符串转换成十六进制字符串 public static String str2HexStr(String str) { if (EncodingUtil.isEmpty(str)) { retur ...
 - Java中将0x开头的十六进制字符串转换成十进制整数
		
1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...
 - HEX格式数据转换成十六进制字符串
		
/** * Hex格式数据转换成十六进制字符串 * @param src */ public void bytesToHexString(byte[] by){ StringBuilder strin ...
 - Js字符串与十六进制的相互转换
		
开发过程中,字符串与十六进.二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制.下面说说具体的转换方法. 1.字符串转换为十六进制 主要使用 charCodeAt() ...
 
随机推荐
- Web—04-详解HTML5与CSS3
			
CSS权重 CSS权重指的是样式的优先级,有两条或多条样式作用于一个元素,权重高的那条样式对元素起作用,权重相同的,后写的样式会覆盖前面写的样式. 权重的等级 可以把样式的应用方式分为几个等级,按照等 ...
 - JavaScript变量声明及赋值
			
1.变量声明 var a; //声明一个变量 a var b,c,d; //同时申明多个变量时,变量名之间用逗号隔开 console.log(a); //在控制台显示变量a的值,输出为undefine ...
 - Ubuntu更换国内源
			
打开终端,输入:sudo gedit /etc/apt/sources.list 在文件最底部输入以下内容: deb http://mirrors.ustc.edu.cn/ubuntu/ xenial ...
 - python名称空间介绍
			
python名称空间介绍 名称空间 python 中名称空间分三种: 内置名称空间 全局名称空间 局部名称空间 内置名称空间: 原码里面的一些函数都是存在这个内存空间中,任何模块均可访问它,它存放着内 ...
 - Tornado 线程池应用
			
Tornado是一个异步框架,在异步操作的时候能提升程序的处理性能.但是如果在程序中碰到同步的逻辑,由于GIL的关系,会直接卡死,导致性能急剧下降. 目前对于mongodb以及redis都有比较不错的 ...
 - Elasticsearch 数据操作
			
一.新增数据 1.1 随机生成id 语法: POST /索引库名/类型名 { "key1": "value1", "key2": " ...
 - PHP 通过命令异步执行PHP程序
			
通过PHP执行系统命令调用PHP执行程序,让进程挂起到后台执行,不影响用户页面交互. 控制器调用命令,不用等待,后台创建一个进程执行程序. system(“nohup php command.php ...
 - VMWARE虚拟机中CentOs7网络连接
			
1.选择网络连接模式 这里选择NAT模式 2.查看虚拟机逻辑地址段 编辑---->虚拟网络编辑器 这里显示的是192.168.40.0 我们本机占用了192.168.40.1,网关是192.16 ...
 - 网站用户行为分析——Hadoop的安装与配置(单机和伪分布式)
			
Hadoop安装方式 Hadoop的安装方式有三种,分别是单机模式,伪分布式模式,伪分布式模式,分布式模式. 单机模式:Hadoop默认模式为非分布式模式(本地模式),无需进行其他配置即可运行.非分布 ...
 - 使用GlobalKey启动APP
			
按键输入有三种:system key 音量键 global key 按下启动某个APP user key ABCD... 给安卓应用程序定义一个广播接收者,写一个BroadcastReceiver ...