問題タブ [packing]

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.

0 投票する
3 に答える
2320 参照

gcc - カーネル モジュールの構造体からパディングを削除する

標準コマンドを使用して、サイズ 34 の構造体を含むカーネル モジュールをコンパイルしています。

sizeof(some_structure)34 ではなく 36 として表示されます。つまり、コンパイラが構造体をパディングしています。

このパディングを削除するにはどうすればよいですか?

実行make V=1すると、渡された gcc コンパイラ オプションが表示されます。

0 投票する
7 に答える
6635 参照

c++ - C++ の typedef 列挙型のパッキング

これを C++ コンパイラでコンパイルしようとするとエラーが発生しますが、C コンパイラでは問題なく動作するようです。そこで質問です。C ++で列挙型をパックすることは可能ですか、またはエラーが発生する理由を誰かが見ることができますか?

エラーは次のとおりです。

「BeNeLux の宣言後にセミコロンがありません」。

チェックして再チェックした後、コードの残りの部分で必要な場所にセミコロンが確実にあることがわかりました。

補遺:

_PACKAGE_はほんの一例でした。改名しています。

_ASSOCIATIONS_は BeNeLux のタイプではありません:

#define _ASSOCIATIONS_ __attribute__((packed))

コードは改ざんされていますが、それが GNU C/C++ であることを確認するためだけです。

これは問題を引き起こしますか? ( GNUC ) は C と C++ の両方で機能すると思いました

補遺2:

私も試してみました

喜びはありません。誰?

注: -fshort-enums は使用できません。プログラムによる解決策を探しています。

0 投票する
1 に答える
1081 参照

javascript - Facebook アプリケーションから難読化された Javascript コード?

これは、コピーしてアドレス バーに貼り付けたコードです。

http://jsbeautifier.org/を実行しましたが、「新しい正規表現」を扱う後半の部分がクリーンアップされませんでした...このコードが何をしているのか、それを理解する方法を知っている人はいますか?

0 投票する
5 に答える
37264 参照

java - Javaは4バイトをintに変換します

ここに記載されているこの解決策がまだ解決策であるかどうか、または4バイトからintを取得する他の方法があるかどうか疑問に思っていましたか?

ありがとうございました。

編集: ソケット .read から byte[] を取得しています

編集: int recvMsgSize = in.read(Data, 0, BufferSize);recvMsgSize が -1 の場合、接続が切断されたことがわかります。

InputStream の代わりに DataInputStream を使用しているときにこれを検出するにはどうすればよいですか?

ありがとう。

編集:正しい答えを受け入れることに関してヨーヨーであることをお詫びします。しかし、mihi の更新された最終的な応答の後、この方法はしっかりしていて、拡張コーディングを削減しているように見えます。私の意見では、ベスト プラクティスです。

0 投票する
4 に答える
5678 参照

algorithm - 最適な方法で長方形を合わせる

サイズが不明なN個の長方形を可能な限り最小の長方形に合わせるのに適したアルゴリズムを誰かが知っているかどうか疑問に思っていました。

最適とは、結果の包含長方形に残る空白の量を減らすことを意味します。

これを使用して、一連の画像から CSS スプライトを生成したいと思います。

どうもありがとう、

イアン

0 投票する
1 に答える
103 参照

image - 圧縮・梱包

問題があります: 0 または 1 を含む配列 nxm がある場合、0 の値を四角形にグループ化する必要があります。最初は単純な四分木を使用しましたが、ツリーの同じレベルにある異なるノードは同じ値を持ちます。Rツリーが私の問題または別のデータ構造で機能するかどうかは完全にはわかりません。この構造を事前計算ステップで使用するだけなので、それだけです。

ps: 2D 画像を扱っています

0 投票する
3 に答える
766 参照

python - Python の binary16

このstructモジュールは、データをバイナリ形式に変換したり、バイナリ形式から変換したりするときに役立ちます。しかし、最近、binary16 浮動小数点形式を使用するファイル形式仕様に出くわしました。Python のドキュメントを調べましたが、Python との間で変換できるものは見つかりません。このデータを Python フロートとの間で変換する最良の方法は何でしょうか?

0 投票する
1 に答える
1882 参照

java - Java パッケージの問題

わかりましたので、Java でテスト ファイルを処理することにしました。ホーム PC からフォルダーを .rar し、それを職場の PC に持ち込むことにしました。問題?コンパイルすると、次のようになります。

それはおかしいです。私は自分のファイルをそのままにして、自宅の PC で問題なく動作しました。ファイルはきれいに設定されています。Google JSON Java ファイルを含むフォルダーに com.google.gson があり、正しいディレクトリに googleRead.java ファイルがあります...そして、map1.txt もそこにあります...変ですか? そう思います。

これが私のファイルです:

0 投票する
2 に答える
743 参照

algorithm - 独立集合/ハミング距離を組み合わせたアルゴリズム/近似

入力:グラフG出力:いくつかの独立したセット。すべての独立したセットに対するノードのメンバーシップは一意です。したがって、ノードは、それ自体のセット内のどのノードにも接続できません。パスの例を次に示します。

ここで明確化が求められたので、別の言い換え:

与えられたグラフをセットに分割して、

  1. セット内のメンバーシップによって、ノードを他のすべてのノードと区別できます。たとえば、ノードiがセットAにのみ存在する場合、他のノードはセットAにのみ存在するべきではありません。

    ノードjがセットAとBに存在する場合、他のノードはセットAとBにのみ存在してはなりません。ノードのメンバーシップがビットパターンでコード化されている場合、これらのビットパターンには少なくとも1つのハミング距離があります。

  2. 2つのノードがグラフ内で隣接している場合、それらは同じセットに存在してはならないため、独立したセットになります

例:Bには隣接ノードがありませんD => A、A => D

解決:

  1. AB/
  2. / BD

Aにはビットパターン10があり、そのセットに隣接ノードはありません。Bにはビットパターン11があり、隣接ノードはありません。Dには01があるため、すべてのノードのハミング距離は少なくとも1であり、隣接ノードはありません=>正しい

間違っています。DとAが接続されているためです。

  1. ADB
  2. / DB

Aのセットにはビットパターン10とDがあり、それらは隣接しています。Bにはビットパターン11があり、隣接ノードはありません。DにはBと同様に11があるため、このソリューションには2つのエラーがあるため、受け入れられません。

もちろん、少なくともlog(n)セットが必要なので、グラフ内のノードの数が増えるにつれて、これをより多くのセットに拡張する必要があります。

これにsat-solverを使用するために、私はすでにMAX-SATへの変換を作成しました。しかし、条項の数は非常に多いです。より直接的なアプローチがいいでしょう。これまでのところ近似値がありますが、正確な解または少なくともより良い近似値が必要です。

粒子群を使用して、任意のソリューションからより良いソリューションに向けて最適化するアプローチを試しました。ただし、実行時間はかなりひどく、結果は決して素晴らしいものではありません。動的アルゴリズムか何かを探していますが、この問題を分割統治する方法を理解することはできません。

0 投票する
3 に答える
1498 参照

c++ - 4バイトのパッキングを有効にしてC++でコンパイルしたときに、char、short、char(この順序で)で構成される構造体が6バイトの構造体になるのはなぜですか?

C /C++が構造体メンバーの配置をどのように処理するかを理解したと思いました。しかし、VisualStudio2008および2010の特定の配置で奇妙な結果が得られています。

具体的には、char、short、およびcharで構成される構造体は、4バイトまたは8バイトのパッキングが有効になっている場合でも、6バイトの構造体にコンパイルされることがわかりました。なぜそうなるのか途方に暮れています。4バイトの構造体が理解できます。おそらく8バイトの構造体を理解できたでしょう。しかし、4バイトのパッキングが有効になっている場合、6バイトの構造体は不可能だと思います。

問題を示すプログラムは次のとおりです。

出力は次のとおりです。

VCがこれらの各文字に追加のバイトをパディングしている理由を誰かが説明できますか?