ethereum - Solidity 中的切片数字(例如从 uint 中提取 2 个第一个数字)
问题描述
我有这个数字:
uint256 numbers = 123456789;
我需要将前两个数字 (12) 提取到 uint 变量中。
也可以提取前一个数字之后的下两个数字:34
等等。
有没有简单的方法可以在solidity中做这样的事情?
我有这个功能,但它是为字符串制作的:
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);
}
就我而言,我希望输入/输出数字为 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 ;
}
推荐阅读
- java - (getClass() != obj.getClass()) 对象 obj
- java - java.nio.file.Files.newInputStream(myfile.toPath()) 比 new FileInputStream(file) 好吗?
- performance - 是否可以在 UBUNTU 中为 PID 在 GUI 中获取 CPU 和内存
- regex - 这个正则表达式算法有什么用?
- jquery - 如何扩展答案表格
- c# - 是否可以在案例中更改开关变量?
- reactjs - 在 reactjs 如何将页面标题更改为与页面路由链接名称相同?
- c++ - 尝试将 Ruby 自定义数组访问器转换为 C++ 下标运算符覆盖
- dart - Flutter 中的 ListView 中长按和滑动
- dart - 如何修复解决依赖关系...使用颤振运行时出错?