数组的应用之单位转换

比如:把Byte转换成MB。
现在有3145728Byte,要转换成MB该如何用代码实现呢?

定义单位数组:首先我们用数组存储若干个单位,从小到大依次是“Byte”,“KB”,“MB”, “GB”。

定义指向当前单位的变量:再使用一个变量存储当前单位在数组中的索引,很明显当前单位为Byte,所以变量指向数组中第一个元素的索引值:0。

循环除:再想想Byte到MB要做哪些数学运算?要做的就是除2次1024。

调整变量:另外我们在除1024后,单位提升了一阶,所以要把变量加1,指向在数组中更高一阶的单位。

伪代码:

val = 3145728
arr = [Byte, KB, MB]
curIndex = 0

for(i=0;i< arr.len; i++) {
	val = val/1024
	curIndex++
	if(arr[i] == MB) {
  	break;
  }
}

print(val) // 3
print(arr[curIndex]) // MB

其他形式的单位转换,都可以用类似的代码实现,包括:长度单位、功率单位和汇率单位等。

在这种案例中需要用一个线性数据结构存储单位,方便在单位换算时调整指针指向不同的单位,而数组是一个不错的选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值