我寄来一份合同如下:
web3.eth.sendTransaction({from: sender, to: address, value:amount, gas:300000, data:"1234"});
在我的回退函数中,我可以看到msg.data有以下值(如预期的那样):
"0x1234“
问题是(我已经干了好几个小时了.)如何将其转换为保存值1234的uint?
下面是我的尝试
function bytes2uint(bytes _data) constant returns(uint){
uint i=0;
uint dec=0;
for (i = 0; i < _data.length; i++) {
byte e=_data[_data.length-i-1];
uint f=uint(e);
f=((f/16)*10)+(f%16);
dec+=(f*(100**i));
}
return dec;
}我能够成功地转换"0x1234“、"0x123456”、"0x12“等(即偶数位数)。但是,当我尝试"0x123“或"0x12345”(例如)时,尾数不知怎么被截断了?
发布于 2016-03-21 05:09:59
https://ethereum.stackexchange.com/questions/2205
复制相似问题