在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  Java/ java 數(shù)據(jù)結(jié)構(gòu) 日期 y*512+m*32+d 請(qǐng)問是如何轉(zhuǎn)換的

java 數(shù)據(jù)結(jié)構(gòu) 日期 y*512+m*32+d 請(qǐng)問是如何轉(zhuǎn)換的

y512+m32+d 請(qǐng)問是按位存儲(chǔ)嗎,如果是的話,那月份(value/32)%16又是如何轉(zhuǎn)換的圖片描述

回答
編輯回答
糖豆豆

value=512y+32m+d
是假設(shè)所有的輸入年份都為有效的。

一個(gè)int類型的存儲(chǔ)長(zhǎng)度為32位。
取后1-5位存儲(chǔ)d的值,因?yàn)?0<1<=d<=31。即2的5次方
取中間6-9位存儲(chǔ)m的值,因?yàn)?0<1<=m<=12<15。即2的4次方
剩下的10至31位存儲(chǔ)y的值(int為有符號(hào)整數(shù),32位為符號(hào)位)。

這是一個(gè)按位存儲(chǔ)的算法。
參考512y+32m+d怎么理解

m乘32即左移5位,y乘512即左移9位

至于月份計(jì)算value右移5位,現(xiàn)在32bit中只有y和m的值了,再右移4位,只剩下y的值了,移出去的就是m的值,也就是取模的結(jié)果

2017年5月10日 15:27