主要针对:二进制表示法,以及十进制表示法;

1. 获取位数

已知该数 n 采用十进制进行表示

  • 二进制形式的位数:⌊log2n⌋+1
  • 十进制形式的位数:⌊log10n⌋+1

2. 截断(保留前/后 m 位)

  • 二进制:保留前 m 位 ⇒ 需要右移 n-m 位;
  • 十进制:保留前 m 位 ⇒ 需要右移 n-m 位;
  • 但这里的右移 n-m 位,涵义并不相同,二进制右移,对应着二进制位运算(除以 2n−m),十进制右移,对应的是十进制的位运算(除以 10n−m);
// 保留整数 n 的前 m 位;
int part(int n, int m){
return n / int(pow(10, int(log10(n))+1-m));
}
part(123456789, 3) ⇒ 123

3. 一些应用

Karatsuba 快速乘积算法首先将两个整数分别一分为二。例如,a 和 b 各位 256 位的整数,那么使用 a1 和 b1 保存前 128 为,而 a0 和 b0 中保存后 128 位。分割后,a 和 b 可写成如下的形式。

{a=a0⋅10128+a1b=b0⋅10128+b1

最新文章

  1. ExtPB.Net:窗体应用技巧(2)在树形导航下打开弹出的win窗口
  2. ae 地理坐标与投影坐标转换 [转]
  3. java-7311练习(上)
  4. setTimeout和setinterval的区别
  5. JMeter压力测试以文件的形式
  6. Android记录6--ViewPage+Fragment的使用例子
  7. hadoop错误java.io.IOException Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being available to try
  8. 基于Redis的分布式锁的简单实现
  9. CSS Grid 网格布局全解析
  10. 查询优化--小表驱动大表(In,Exists区别)
  11. redis scan删除key的方法封装
  12. React基础概念
  13. android开发(43) 动画演示,会跑的小人,从屏幕左侧跑到右侧
  14. 常用的js 总结
  15. 团队开发中,eclipse中安装jre
  16. ROS知识(9)----安装Turtlebot2和远程控制Turtlebot2
  17. linux进程管理(二)
  18. SQLserver2008全文检索使用方法
  19. 使用ITextSharper小结
  20. Specification模式的一个不错的示例代码

热门文章

  1. 手动脱FSG壳实战
  2. openssl之BIO系列之25---结束语
  3. LightOJ 1070 Algebraic Problem (推导+矩阵高速幂)
  4. ActiveReports 9实战教程(2): 准备数据源(设计时、执行时)
  5. Java 关于运算结果
  6. 关于ajax访问express服务器的跨域问题
  7. Android开发之ConstraintLayout相对布局
  8. 洛谷 P1981 表达式求值
  9. 数据结构基础(3)---C语言实现单链表
  10. 9.使用 npm 命令安装模块