java如何将存储在单个字节(长字节)中的值分离?
我目前正在尝试学习如何解决作业中的问题
•该类存储工作小时数,hours
,是一个很长的时间,是一个压缩的小时数版本
小时输入介于0.0和24.0之间(小数点后一位)
小时输入*10介于0和240之间。方便地将其放入无符号字节中
一个长文件可以保存8个字节
hours
是一个长字符,将最低有效7字节设置为按比例缩放的小时条目(如果有帮助,则设置为十进制小时)。星期六的小时数存储在最右边的字节中:格式类似于00-FR-TH-WE-TU-MO-SU-SA,其中每两个字母代表一个字节,从高到低
我的问题是,我该怎么做?如何将0和240之间的某个值存储在long中的某个字节位置,并确保它们保持分离
多谢各位
# 1 楼答案
Java没有无符号类型。为一周中的每一天声明一个
long
。使用operators将每天的值移动到所需的字节位置,然后使用[按位]或将每天与另一个存储整个星期的long
变量组合为了检索每天的值,对变量
week
执行相反的操作。例如,要检索星期一的值,请将week
的值向右移动,以便星期一的值占用最低有效位,然后执行[按位]和以获取实际值。由于该值乘以10,只需除以10即可得到原始值,如图所示: