一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 編程技術 - 一個有趣的面試題:如何用三個字節存儲年月日

一個有趣的面試題:如何用三個字節存儲年月日

2022-01-04 21:33龍兒箏 編程技術

一個有趣的面試題,如何用3個字節存儲年月日呢?我們都知道一個字節存儲數據最大是255,年份超過255,需要2個字節,月份和天數只需要一個字節就夠了,但是我們發現這樣存儲的話,就需要4個字節了,那么用3個字節到底怎么處理

一個有趣的面試題,如何用3個字節存儲年月日呢?我們都知道一個字節存儲數據最大是255,年份超過255,需要2個字節,月份和天數只需要一個字節就夠了,但是我們發現這樣存儲的話,就需要4個字節了,那么用3個字節到底怎么處理呢?

一個有趣的面試題:如何用三個字節存儲年月日

我們思考一下,1個字節是8位,3個字節就是24位。一個月最多31天,只需要5位就夠了,12個月份也只用占4位,還剩下15位用來存儲年份,最大能表示3萬多年,是足夠的,所以理論上是可以用3個字節來存儲年月日。代碼應該怎么實現呢,我們將上面的思路用一個表格來表示。

一個有趣的面試題:如何用三個字節存儲年月日

由上表可知,我們可以存儲的最大年份是32767年,月份是15,天數是31,完全符合我們的實際需求。以下用java代碼來實現。

  1. public class Demo {
  2. /**
  3. * 將傳入的年月日存儲在3個字節的數組中
  4. * 3個字節總共24位,從左到右前15位存年份,中間4位存月份,最后5位存儲天數
  5. * @param year 年份
  6. * @param month 月份
  7. * @param day 天數
  8. * @return 返回存儲字節數組
  9. */
  10. private static byte[] date2bytes(int year, int month, int day) {
  11. byte[] bytes = new byte[3];
  12. bytes[2] = (byte) (((0x7 & month) << 5) | (0x1F & day));
  13. bytes[1] = (byte) (((0x7F & year) << 1) | ((0x8 & month) >> 3));
  14. bytes[0] = (byte) ((0x7F80 & year) >> 7);
  15. return bytes;
  16. }
  17. /**
  18. * 從存儲年月日的3個字節中解析出年月日數據
  19. * @param bytes 待解析的字節數組
  20. * @return 返回長度為3的數組,依次表示年,月和日
  21. */
  22. private static int[] bytes2date(byte[] bytes) {
  23. int[] date = new int[3];
  24. date[2] = bytes[2] & 0x1F;
  25. date[1] = ((bytes[1] & 0x1) << 3) | ((bytes[2] & 0xE0) >> 5);
  26. date[0] = ((bytes[0] & 0xFF) << 7) | ((bytes[1] & 0xFE) >> 1);
  27. return date;
  28. }
  29. }

我們以2021年12月31日來測試一下最終的效果:

一個有趣的面試題:如何用三個字節存儲年月日

我們可以看到存儲的三個字節中的值,最后解析3個字節也還原成了最初我們設置的日期。

原文地址:https://www.toutiao.com/a7048853891441541643/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品91久久久久久 | 日本不卡免免费观看 | 日本一区二区视频免费播放 | 午色影院 | 91久 | 精品一区二区免费视频蜜桃网 | 二次元美女互摸隐私互扒 | 寡妇一级毛片 | 俺去也亚洲色图 | 国产欧美日韩精品一区二区三区 | 九九99九九精彩 | 国产美女亚洲精品久久久综合91 | 日本在线色 | 日本精品vide·ssex日本 | 99久久999久久久综合精品涩 | 亚洲欧美日韩国产精品影院 | 欧美大美bbb和大白屁股 | 三级全黄的视频 | 色综合久久天天综合观看 | 天天摸日日舔 | 色婷婷在线播放 | 无遮挡免费h肉动漫在线观看 | 草草视频在线观看最新 | 色悠久久久久综合网小说 | 动漫美女人物被黄漫小说 | 日本乱人伦中文在线播放 | 精品久久99麻豆蜜桃666 | 国产视频久久久 | 国内免费高清视频在线观看 | 掀开奶罩边躁狠狠躁软学生 | 亚洲日本在线观看网址 | 久久www免费人成_看片高清 | 好大好爽好涨太深了小喜 | 欧美在线视频一区在线观看 | 国产一及毛片 | 91外围 | 91精品国产品国语在线不卡 | 国产51社区精品视频资源 | 99精品视频免费在线观看 | 四虎麻豆国产精品 | 91免费视频国产 |