[Solidity development] type conversion - address & bytes

address to bytes
    function _toBytes(address a) internal pure returns (bytes memory b) {
    
    
        assembly {
    
    
            let m := mload(0x40)
            a := and(a, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
            mstore(
                add(m, 20),
                xor(0x140000000000000000000000000000000000000000, a)
            )
            mstore(0x40, add(m, 52))
            b := m
        }
    }
bytes to address
    function _bytesToAddress(bytes memory bys)
        internal
        pure
        returns (address addr)
    {
    
    
        assembly {
    
    
            addr := mload(add(bys, 20))
        }
    }

Guess you like

Origin blog.csdn.net/weixin_43742184/article/details/119032995