zoukankan      html  css  js  c++  java
  • Solidity中uint转string

      在《Solidity中uint转bytes》中,我们知道unit如何转换成bytes,其实把uint转换成string,就是在最后加上string(bytes变量)即可,如下所示:

    pragma solidity ^0.4.2;
    
    contract Test {
        
        function toBytesNickJohnson(uint256 x) constant returns (bytes b) {
            b = new bytes(32);
            assembly { mstore(add(b, 32), x) }
        }
    
        function getStr(uint playChoice) returns (string s) {
            bytes memory c = toBytesNickJohnson(playChoice);
            return string(c);
        }
        
        function toBytesEth(uint256 x) constant returns (bytes b) {
            b = new bytes(32);
            for (uint i = 0; i < 32; i++) {
                b[i] = byte(uint8(x / (2**(8*(31 - i))))); 
            }
        }
    
        function toBytesNicolasMassart(uint256 x) constant returns (bytes c) {
            bytes32 b = bytes32(x);
            c = new bytes(32);
            for (uint i=0; i < 32; i++) {
                c[i] = b[i];
            }
        }
    }

      但是呢,我在这里再附加一种Solidity中uint转string方法,如下所示:

    pragma solidity ^0.4.2;
    
    contract Test {
        
        function uint2str(uint i) internal returns (string c) {
            if (i == 0) return "0";
            uint j = i;
            uint length;
            while (j != 0){
                length++;
                j /= 10;
            }
            bytes memory bstr = new bytes(length);
            uint k = length - 1;
            while (i != 0){
                bstr[k--] = byte(48 + i % 10);
                i /= 10;
            }
            c = string(bstr);
        }
    }

  • 相关阅读:
    PHP mysqli_error() 函数
    PHP mysqli_error_list() 函数
    PHP mysqli_errno() 函数
    PHP mysqli_dump_debug_info() 函数
    PHP mysqli_data_seek() 函数
    PHP mysqli_debug() 函数
    PHP mysqli_connect() 函数
    PHP mysqli_connect_errno() 函数
    PHP mysqli_connect_error() 函数
    PHP mysqli_commit() 函数
  • 原文地址:https://www.cnblogs.com/flyingeagle/p/10153452.html
Copyright © 2011-2022 走看看