-1

16 進数の文字列値を持つ変数があります。そして、Perl にそれを 16 進値として読み取らせて、いくつかの追加を実行できるようにします。しかし、私は値を変更したくありません。

例えば:

$string = 'AB320000';

私が欲しい、

$hex = $string = 'AB320000';

私ができるように:

 $hex + 0x10 + 0x20;
4

1 に答える 1

3

あなたは数学とコンピューターの仕組みを理解していません。10 進数、16 進数、2 進数、およびその他の形式があります。それらは単なる表記であり、数を表現する方法です。コンピューターは、操作する基本的なコンポーネントを備えたコンピューターでのみ動作する傾向があります。使用しているコンピューターには、おそらくバイナリが必要です。それでは、物事がどのように機能するかを次に示します。

  1. 魔法の箱に「ひも」をつけます。
  2. マジック ボックスに、この文字列が 16 進数形式の数値であることを伝えます。
  3. あなたのコンピュータはその文字列を操作可能な数値実装に変換しようとしています: int や float のように - しかし、それはバイナリで保存されます。
  4. int または float の加算を計算するなど、何かを行うようにマジック ボックスに指示します。
  5. 結果の数値を任意に 16 進形式でレンダリングするように要求します。

それが機能する方法です。質問は、

  1. (Perl で) 16 進数の文字列を数値に変換するにはどうすればよいですか?
    • コードでリテラルを使用している場合は、質問0xFFなどで行った方法とまったく同じです。
  2. 整数 (または浮動小数点数など、Perl の場合) を追加するにはどうすればよいですか?
    • ヒント:質問で使用されているように、これは単に+演算子です。
  3. (Perl で) 整数を 16 進文字列としてレンダリングするにはどうすればよいですか?
    • ヒント:printf( '%x', 255 )

そして、これらの質問はすべて、おそらく SO ですでに回答されています。

于 2013-03-09T00:07:29.963 に答える