首页 技术 正文
技术 2022年11月17日
0 收藏 645 点赞 3,762 浏览 1473 个字

https://mp.weixin.qq.com/s/Sf0owQxWzxacVvykJZ5oTQ 介绍TransferSizes的实现。 ​Rocket – diplomacy – TransferSizes​ 1. 基本定义 从min到max的闭合区间:[min, max] 判断条件:a. min和max为2的幂;b. min <= max;c. min和max为非负整数;d. min和max必须同时为0; ​Rocket – diplomacy – TransferSizes​ 2. none 因为min和max必须同时为0,所以只需要判断min是否为0即可:​Rocket – diplomacy – TransferSizes​ 3. contains 判断this是否包含x,即x落在this的范围内:​Rocket – diplomacy – TransferSizes​ 4. containsLg 判断this是否包含2^x。 5. intersect 计算this和x的交集。 6. 伴生对象 ​Rocket – diplomacy – TransferSizes​a. 构造方法:min = max = x;b. none对象:min = max = 0;c. asBool:x是否为空; 7. 附录 TransferSizes:// An potentially empty inclusive range of 2-powers [min, max] (in bytes)case class TransferSizes(min: Int, max: Int){ def this(x: Int) = this(x, x)  require (min <= max, s”Min transfer $min > max transfer $max”) require (min >= 0 && max >= 0, s”TransferSizes must be positive, got: ($min, $max)”) require (max == 0 || isPow2(max), s”TransferSizes must be a power of 2, got: $max”) require (min == 0 || isPow2(min), s”TransferSizes must be a power of 2, got: $min”) require (max == 0 || min != 0, s”TransferSize 0 is forbidden unless (0,0), got: ($min, $max)”)  def none = min == 0 def contains(x: Int) = isPow2(x) && min <= x && x <= max def containsLg(x: Int) = contains(1 << x) def containsLg(x: UInt) = if (none) Bool(false) else if (min == max) { UInt(log2Ceil(min)) === x } else { UInt(log2Ceil(min)) <= x && x <= UInt(log2Ceil(max)) }  def contains(x: TransferSizes) = x.none || (min <= x.min && x.max <= max)  def intersect(x: TransferSizes) = if (x.max < min || max < x.min) TransferSizes.none else TransferSizes(scala.math.max(min, x.min), scala.math.min(max, x.max))  override def toString() = “TransferSizes[%d, %d]”.format(min, max) } object TransferSizes { def apply(x: Int) = new TransferSizes(x) val none = new TransferSizes(0)  implicit def asBool(x: TransferSizes) = !x.none} 

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898