
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
【チェリー本】なぜ (~0b1010).to_s(2) #=> "-1011" なのか - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
【チェリー本】なぜ (~0b1010).to_s(2) #=> "-1011" なのか - Qiita
“~”(チルダ) はビット反転を表すようです。 ビット反転ってのは単純に2進数の01を反転させる操作なんで ... “~”(チルダ) はビット反転を表すようです。 ビット反転ってのは単純に2進数の01を反転させる操作なんで (~0b1010).to_s(2)ときたら、"0101"になると思うじゃないですか! しかし、irb上で実際に返ってくるのは**"-1011"**とのこと。 初めてこれを見たときには頭を抱えましたが、色々調べてみる中でどういうことなのか理解しましたので、ここに記録を残しておきます。 ちなみに前提として、n進数に関する基本的な知識が必要です(基本情報処理技術者試験の参考書とかで勉強できます。) (~0b1010) まず、(~0b1010).to_s(2) の (~0b1010) の部分ですが こちら側は4桁の2進数を入力したつもりでも、コンピュータ上だと実際には0...0001010のような4桁以上のビット数の値として取り扱われていることを理解している必要があります。 それを踏まえた上