表示 十六进制字符串 对 10取模的方法
来源:互联网 发布:java ee tag标签文件 编辑:程序博客网 时间:2024/05/21 05:36
缘由:近与同学讨论遇到一个问题,有如"0xe89323948439f9d3a85953589"的一串字符表示的十六进制数. 需要求出 模 10 后取的余数??
解决方法:
如果用一个int 型数据保存. 逐步解释每一个字符乘以16^n的值再累加, 把字符串转化成数字 再 mod 10的话,会存在溢出的问题, 所以这种思路不太好.
自己能想到最好的办法是这样的:读出每一个字符对应的于0~15的值(除最后一位)累加乘以6,再加上最后一位的值. 之后再 mod10 即是最终所求的余数..
原理:16^n = 10*k +6 (n,k为正整数,且n>=1) 这个式中显然成立.. 因此 (16^n)mod(10) = (10*k + 6)mod(10) = 6(n,k为正整数,且n>=1).
因此除最后一位的数.都可以直接简化为乘以6,再加了最后一位的值. 最后mod 10即可.
示例: 比如 0x58fd7 mod 10 = ?
直接口算易知:(5 + 8 + 15 + 13)* 6 + 7 的结果mod10 为 3 。。 有此方法上面的式中很长都可以很快口算出来.何况用编程for循环呢..
或许还有更好的方法. 但自己想不出.也没再深入的想..
0 0
- 表示 十六进制字符串 对 10取模的方法
- python 实现十六进制数字符串的取模
- 十六进制字符串转十六进制数值的方法
- 二进制, 八进制, 十六进制 输出的表示方法
- 十进制,八进制,十六进制数的表示方法
- C++实现十六进制表示字符串
- 输出内存数据的二进制和十六进制的字符串表示
- Java 字节数组与十六进制表示的字符串,互相转换
- 负数的十六进制表示
- PHP字符串的表示方法
- C/C++二进制,八进制, 十进制和十六进制的表示方法
- C/C++二进制、十进制、十六进制的表示方法
- 取年月日的字符串方法
- .NET 关于字符串的十六进制转换为十进制 十进制转换为十六进制字符串的简单方法
- C++中二进制、八进制、十六进制表示方法
- C++中二进制、八进制、十六进制表示方法
- 将字符串形式输入的比特串转换为相应的十六进制表示的函数
- c++ 字符串带双引号的表示方法
- Oracle导出 DMP 方法
- document节点对象的获取方式
- CART算法实现之可视化
- Souliss – 分布式家庭自动化和物联网
- Facebook 2013年的9个开源项目
- 表示 十六进制字符串 对 10取模的方法
- java 1.6新特性
- UIBUTTON点击事件
- JVM学习(1)
- Unity与FBX--为什么使用FBX文件
- eclipse设置字体
- java 1.7新特性
- 如何获得数组的长度
- ADT稀疏矩阵 及 转置