IEEE 754有一個半精度的浮點數,叫Half-precision floating-point format 通訊的時候數值的部分常會用到,因為他是最小的浮點數,好用 Go的float16 package 我有一個專案有用到這個 https://github.com/x448/float16 不錯用,推推 online float16 calculator 要做確認的時候還是會需要計算一下,查到這個網站
Sep 2, 2022有時候我們會需要查看一個檔案(尤其是binary檔案的時候)的各個byte到底寫了什麼,這時後就可以用od這個指令來把檔案一個一個byte地顯示出來 最常用的指令(今天就只記錄這招XD) od -c filename.bmp >> od.txt 上面是將一個bmp檔案經過od的解析後,將結果寫進od.txt中。寫進txt檔是因為通常這個output會很大,如果terminal不允許顯示這麼長的output的話,會無法一次看完全部。 參數c在man page的解釋是"select printable characters or backslash escapes",已經講解得很清楚了,如果是ASCII的話會顯示字元或是帶有反斜線的跳脫字元,但一個byte換成十進位的話可以代表0到255,而ASCII只用了0到127而已,所以剩下的無法部分,od會將它轉換成八進位的三位數,例如212代表的就是2x8^2+1x8+2=138,也就是十進位的138,又例如012代表的就是十進位的10。所以我們可以知道這邊這個三位數最多只到377,也就是十進位的255 而od.txt每一行的左邊會有該行的行數,更正確的說是該行的offset,也就是該行在這份檔案中,它的前面有幾個byte的意思。而他的單位是八進位的數字,例如0000040代表的就是這一行的前面有4x8=32個byte。
Sep 6, 2020其實一直不想做RecyclerView的筆記,因為網路上資源太多了,但每次要用的時候都還要花個幾分鐘回憶一下這東西到底在幹嘛,實在是浪費時間,所以這篇從程市結構上簡單講一下,讓下次要用到RecyclerView的時候可以快速恢復記憶。 程式結構 以下重點式地說一下哪些地方要寫東西: Activity/Fragment的class attribute要新增 一個RecyclerView: 用來接收recyclerview的UI widget,並用它來設定好recyclerview背後的程式邏輯。
Sep 5, 2020先來講一點廢話,講一下為啥我會開始用ViewModel。 以前我寫single activity application還沒有用navigation的時候,都是自己寫個listener的interface用observer pattern來實現activity和fragment的溝通。我記得這其實是原本官方建議的方式,但我現在找不到了,記得好像蠻硬性地規定要有個callback method叫做onFragmentInteraction(uri: Uri)來做activity跟fragment的溝通。observer pattern的方式我用了很久,直到後來因為覺得各個fragment之間的轉換用寫的實在是有點亂,就用了navigation,沒想到一試成主顧,真的太好用而且很簡單(我就不特別筆記navigation了因為官方教學十分清楚,照著做就好),但用了navigation後,整個MainActivity的程式架構變了很多,也讓我重新思考activity、fragment和service之間到底要怎麼溝通比較好,於是讓我有這個機會試著用用看ViewModel和LiveData。然而它們就跟navigation一樣,太好用又太簡單了,用完之後回不去了。 所以這篇筆記所寫的可能跟一般大家常用ViewModel和LiveData的理由不同,一般是拿來存取UI元件的資料用的,而我這邊想講一下怎麼用ViewModel和LiveData來取代Observer pattern來做activity和fragment之間(fragment和fragment之間也可以)的溝通,而且相較之下是一個更好用更簡單的方案。 基本介紹 ViewModel ViewModel是一個用來把資料跟activity、fragment等view類型的元件分離的東西,而且它的lifecycle比activit和fragment的還要長,是一個很適合放資料的地方。它的存在跟一個叫做MVVM的design pattern有很大的關係。主要就是view跟model之間,有了這個viewmodel來讓資料的取得與更新有一個獨立的地方來專門處理。
Aug 20, 2020or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up