我有这样的数字:
uint256 numbers = 123456789;
我需要将两个第一个数字(12(提取到uint变量中。
还有可能提取前一个数字后的下两个数字:34
等等。
有什么简单的方法可以扎实地做这件事吗?
我有这个功能,但它是为字符串制作的:
function getSlice(uint256 begin, uint256 end, string text) public pure returns (string) {
bytes memory a = new bytes(end-begin+1);
for(uint i=0;i<=end-begin;i++){
a[i] = bytes(text)[i+begin-1];
}
return string(a);
}
对于我的情况,我希望INPUT/OUTPUT数字将在UINT256中。
提前感谢您的帮助!
function get2First() public view returns (uint) {
uint a = 123456789;
uint b = a / 10000000;
return b ;
}
function get2second() public view returns (uint) {
uint a = 123456789;
uint b = a / 100000;
uint c = b % 100;
return c ;
}
或者您可以通过使用指数来使它更可读。
abi编码返回了一个uint whit 77位数字,但我只想要前16位,因此77-16=61
contract Twist {
function cutExtra() public view returns (uint) {
uint public num = uint(keccak256(abi.encodePacked("KEK")));
return num/ 10 ** 61;
}
}