2

いくつかのコードサンプルを理解しようとしています。このような表現が出てきます...

exit_status |= 0b0010
exit_status |= 0b0001

バイナリを翻訳するためにここに行きます: http://home.paulschou.net/tools/xlate/

0b00102_ 0b0001_1

0010私は2それが1であることを理解してい0001ます.私の質問は...なぜ0b接頭辞のようなものがあり、それは何を意味するのか、またはどのように機能するのですか?

4

4 に答える 4

3

これ0bはリテラルであり、値を2進表現の数値として指定します。これは、inが16進数として指定するのと同じ0xです0xFF4ABD

これは、数値を複数のシステムで表現できるためです。10進数システム1234やローマ数字システムのように、数字を表現する方法には複数のシステムがありますMCXIVII。2進数と16進数は、これらのシステムの2つにすぎません。

注:と入力する1234と、Rubyはそれを10進数として解釈します。01234たとえば、複数の数値を同時にフォーマットしたい場合(すべての数値が同じ長さ)、8進数として解釈されます。

于 2013-02-04T19:54:11.490 に答える
3

0bは単にバイナリ リテラルを示しています。そうしないと、数値は基数 2 として解釈されません。

詳細: http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UC

于 2013-02-04T19:49:48.320 に答える
2
  • 0b: プレフィックス 2 進数。例: 0b011 (10 進数 3)
  • 0: 接頭辞の 8 進数。例: 010 (10 進数 8)
  • 0x: プレフィックスの 16 進数。例: 0x10 (10 進数の 16)
于 2013-02-04T19:51:58.237 に答える
1

0bは、次の数字を 2 進数として解釈することを示す0x接頭辞です。たとえば、0xffff. 詳細については、こちらを参照してください。

于 2013-02-04T19:52:02.120 に答える