問題タブ [8-bit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - win32api: ビットマップ パレットを取得
私は基本的にこれをやっていますが、8ビット用です。モード ビットとして「P」を使用すると、ビットマップ ビットを正しく取得できます。ただし、これらのビットマップ ビットはすべてありますが、パレットはありません。PIL はデフォルトのグレースケール パレットを使用するだけです。画像から正しいパレットを取得するにはどうすればよいですか?
c++ - 4x8ビット整数から32ビット整数
私は持っています
最初の部分<..>としてarr[0]を使用し、最後の部分としてarr [3]を使用して、これを1つの_int32に変換する必要があります。結局、それは
これを実現するには、ビットシフトまたはそのようなsmthを使用する必要がありますか?
email - 8bit MIME メッセージを quoted-printable に変換
生の 8 ビット部分を含む MIME 電子メールを、7 ビット部分のみを含む RFC822 準拠のメッセージに変換する最も簡単な方法は何ですか?
パーツは自動的に「Content-Transfer-Encoding: quoted-printable」に変換する必要があります。
私のアプリは Java で開発されています。しかし、コマンドライン ツールは素晴らしいものです。私はreformimeを試しましたが、このツールはバグがあるようで、メッセージを適切に書き換えません:-(
助けてくれてありがとう、
オリビエ
java - UTF-8文字(8ビット)をJava文字(16ビット)で格納するときにメモリの浪費を回避する方法。一石二鳥?
かなり飽和状態のトピックの詳細について質問があるのではないかと思います。よく検索しましたが、その特定の明白な-非常に重要な問題に対する明確な答えを見つけることができませんでした。
UTF-8を使用してbyte[]をStringに変換する場合、各バイト(8ビット)はUTF-8でエンコードされた8ビット文字になりますが、各UTF-8文字はjavaでは16ビット文字として保存されます。あれは正しいですか?はいの場合、これは、各愚かなJava文字が最初の8ビットのみを使用し、メモリを2倍消費することを意味しますか?それも正しいですか?この無駄な行動はどのように受け入れられるのだろうか。
8ビットの疑似文字列を作成するためのトリックはありませんか?それは実際にメモリ消費量を減らすことになりますか?または、このメモリの浪費を回避するために、1つのJava 16ビット文字に2つ以上の8ビット文字を格納する方法はありますか?
紛らわしい答えをありがとう...
編集:こんにちは、答えてくれてありがとう。UTF-8の可変長プロパティを知っていました。しかし、私のソースは8ビットのバイトであるため、8ビットのUTF-8ワードしか必要ないことを(明らかに間違って)理解しました。UTF-8変換は、CLIで「catsomebinary」を実行したときに表示される奇妙な記号を実際に保存していますか?UTF-8は、バイトの可能な8ビットワードのそれぞれをUTF-8の特定の8ビットワードにマップするために何らかの形で使用されていると思いました。間違い?Base64を使用することを考えましたが、7ビットしか使用しないので悪いです。
再定式化された質問:バイトを文字列に変換するよりスマートな方法はありますか?byte[]をchar[]にキャストするのが好きかもしれませんが、それでも16ビットワードがあります。
追加のユースケース情報:
Jedis (NoSQL RedisのJavaクライアント)をhypergraphDBの「プリミティブストレージレイヤー」として採用しています。つまり、jedisは別の「データベース」のデータベースです。私の問題は、常にbyte []データをjedisにフィードする必要があることですが、内部的には、> Redis <(実際のサーバー)は「バイナリセーフ」文字列のみを処理しています。RedisはCで記述されているため、charは8ビット長であり、AFAIKは7ビットのASCIIIではありません。ただし、JedisのJavaの世界では、すべての文字は内部で16ビット長です。私はこのコードを(まだ)理解していませんが、jedisがこのjava 16ビット文字列をRedis準拠の8ビット文字列に変換すると思います(([ここ] [3])。これはFilterOutputStreamを拡張すると言っています。バイパスすることを望んでいます。 byte [] <->文字列変換をすべて行い、そのFilteroutputstreamを使用します...?)
今、私は疑問に思います:バイト[]と文字列を常に相互変換する必要があり、データサイズが非常に小さいものから潜在的に非常に大きいものまである場合、Java内で各8ビット文字を16ビットとして渡すためのメモリの大きな浪費はありませんか? ?
python - ファイルをテキスト モードで開くと、Python でデータが失われる可能性があります。なぜですか?
codecs.open()
言及のためのドキュメント
バイナリ モードが指定されていない場合でも、ファイルは常にバイナリ モードで開かれます。これは、8 ビット値を使用したエンコードによるデータ損失を避けるために行われます。
ファイルにテキストモードを使用すると、どのように「データ損失」が発生する可能性がありますか? ファイルをテキスト モードで開くと、バイトが 7 ビットに切り捨てられるように思えますが、ドキュメントにはこれについての言及が見つかりません。テキスト モードは、改行を変換する方法としてのみ説明されており、潜在的なデータについては言及されていません。損失。では、ドキュメントは何をcodecs.open()
参照していますか?
PS : プラットフォーム依存の改行エンコーディングへの自動改行変換には注意が必要であることは理解できますが、問題は 8 ビット エンコーディングに固有のものについてです。エンコーディングが 8 ビットであるか 7 ビットであるかに関係なく、一部のエンコーディングのみが自動改行変換と互換性があると推測していました。では、なぜcodecs.open()
のドキュメントで 8 ビット エンコーディングが選択されているのでしょうか。
colors - この .bmp イメージの 0x1C の bpp 情報が間違っているのはなぜですか?
アドレス 1D は、画像が 1 ピクセルあたり 8 ビットであることを示していますが、そうではなく、各ピクセルは 3 バイト (24 ビット) で表されます。
最初は、Photoshop がこれを誤って実行したと思っていましたが、この形式がすべてのグレースケール画像に使用されていることがわかりました。
ピクセルに 4 バイトを使用する代わりに、.bmp 画像が 0 ~ FF の値を使用して各ピクセルのグレースケール値を記述しないのはなぜですか?
編集:ファイル構造に関する自分の質問に答えることができました
ピクセルあたり 8 ビット (8bpp) 形式は、256 の異なる色をサポートし、1 バイトあたり 1 ピクセルを格納します。
各バイトは、最大 256 色のテーブルへのインデックスです。このカラー テーブルは 32bpp 8.8.8.0.8 RGBAX 形式です。
16 進エディタに表示されるカラー テーブルは、1 ピクセルあたり 4 バイトです。
その下には実際のピクセル配列があり、ピクセルあたり 8 ビットです。
計算でわかったのですが、画像は 64 x 64, 4096 ピクセルです。
The pixel array starts at 436, and end at 1437. 10 進数では、これら 2 つの数値の差は 4097 であるため、ピクセル配列は正確に 1 ピクセルあたり 1 バイトになります。
グレースケール画像にカラーテーブルが必要な理由についてはまだ興味がありますが、
mysql - RubyでAES暗号化文字列がMySQLテーブルに空白として保存されるのはなぜですか?
AES暗号化文字列を生成し、それを暗号化と呼ばれるデータベーステーブルに保存する暗号化と呼ばれるモデルがあります。私の暗号化テーブルスキーマは次のとおりです。
ただし、暗号化モデルインスタンスで.saveを呼び出すと、(データベース内の)encryption.encryptionの値が空白('')になります。
モデルの内容は次のとおりです。
ご覧のとおり、モデルには値があります。フィールドがデータベースに空白として保存されている理由について何かアイデアはありますか?
perl - Perl 10 進数から 2 進数へ 32 ビット、次に 8 ビット
10 進数から 2 進数に変換する必要がある数値 (3232251030) があります。バイナリを取得したら、その 8 ビットを数字に分割して、IP アドレスを明らかにする必要があります。
10 進数から 2 進数への変換は簡単です。
参照: http://www.perlmonks.org/?node_id=2664
そこで、バイナリから 8 桁を分割し、IP アドレスを作成する数字に保存する必要があります。
($num はバイナリで "11000000 10101000 01000100 00001110" です)
各 8 ビット「11000000 10101000 01000100 00001110」を「192.168.60.150」に分割して保存する必要があります。
アドバイスしますか?私はこのための分割機能を検討しています..
c - 24ビットRGBを8ビットRGBに変換する方法
24ビットRGBカラー(1色あたり8ビット)を8ビットカラー(2ビットブルー、3グリーン、3レッド)に変換する最良の方法は何でしょうか。これを行うためのCコードが欲しいのですが。