この質問は、私が与えられた宿題から来ています。ストレージ システムは、次の 3 つのフォーマットのいずれかをベースにすることができます。
DD MM SS.S
DD MM.MMM
DD.DDDDD
できるだけ少ないバイト数を使用して、格納できるデータの量を最大化する必要があります。
私の解決策は、最初の形式に基づいています。緯度には 3 バイトを使用しました。DD には 8 ビット (-90 から 90)、MM には 6 ビット (0 から 59)、SS には 10 ビット (0 から 59.9) です。次に、経度に 25 ビットを使用しました。DDD に 9 ビット (-180 から 180)、MM に 6 ビット、SS.S. に 10 ビットです。このソリューションはバイト境界にうまく収まりませんが、次の読み取り値は前の読み取り値の直後に格納でき、8 つの読み取り値は 49 バイトしか使用しないと考えました。
他の人が思いつく方法に興味があります。このデータを保存するためのより効率的な方法はありますか? 注意として、オフセットベースのストレージを検討しましたが、問題は読み取り間で値がどれだけ変化するかを示していないため、変更が可能であると想定しています.