ホームページ > 記事 > ウェブフロントエンド > ビット単位のストレージの概念と例
卒業シーズンが近づいてきました。 。 。この6月から正式に社会人となりました。 。 。私はいつもまだ準備ができていないように感じます。 。 。 。 。 。 。 。 。 。 大きな転換点。 。 。最近の知識を記録します。 。 。
ビット単位のストレージの概念
データベース ストレージでは、バイナリ文字列の一種を使用して複数の値を保存できます。このバイナリ値が 0 と 1 で構成される場合、各値は右から左に加算されます。 2^n の計算値に従って 10 進数に変換することで、1 つの 10 進数で複数の状況を保存するという目的を達成します。
たとえば
現在、アプリ、PC、ミニプログラムなど、さまざまな場所に適用できる 3 つの異なる CSS スタイルがあります。
値で保存する場合は、1 ~ 3 を使用して 3 つのスタイル (styleType) を表し、1 ~ 3 を使用してサポート タイプ アプリ、PC、および小規模プログラム (supportType) をそれぞれ表します。その後、この方法で保存する必要があります。 :
サポートタイプ | |
1,3 | |
1,2,3 | |
1 | |
. .. |
1 | |
2 | |
3 | |
... | |
適用原則: 数値の合計、1 と 1 のみが 1 になります。 言い換えると、アプリをサポートするスタイルをフィルターで除外する場合、つまり、styleType の最初の桁が 1、つまり 1** の場合に対応するスタイルをフィルターする場合、つまり 10 進数値に次の値が含まれることを意味します。 4という数字。
js では、10 進数を直接 AND 演算できるため、トラバースおよびフィルター処理するときにコードを次のように直接判断できます:(item.supportType & 4 == 4)?'对应的styleType支持':'对应的styleType不支持' //注意,==优先级比&大,所以要加括号②シナリオ 2、supportType を変更します 。データベースに保存されるデータは 10 進数の配列であるため、対応する関係を変更する場合は、どの位置が変更されるかを把握し、対応する位置の値を変更する必要があります。バイナリのような表現は、0 が 1 に変更されるか、1 が変更されるプロセスです。 0にしますが、10進数の配列を変更します。対応するビットを変更する2^nの増減処理です。
例:
var supportType = { //按位编码,预留3位 'app':4, 'pc':2, 'mini':1 } var supportVal = 0; i f(obj.supportmini == 1){ //支持小程序 supportVal= supportVal+supportType .mini; } if(obj.supportPc == 1){ //支持pc supportVal= supportVal+ supportType .pc; } obj.supportVal= supportVal;最後に、対応する 10 進数をデータベースに保存するだけです。 その他のシーンはここでご覧いただけます。
以上がビット単位のストレージの概念と例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。