質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

6661閲覧

boolean型のtrue・falseのビット演算

sobue

総合スコア329

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/03/25 01:22

いつもお世話になっております。
表題のboolean型のtrue・falseのビット演算なのですが

いろいろなホームページを見るとtrue・falseしか返さないとかいてあるのにビット演算の場合1or0がはいるのはなぜですか?
なぜ、1と0なのですか?他の言語では-1だったりとかがあるでのよくわかりません。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yona

2016/03/25 01:29

boolean型のtrue・falseのビット演算とは具体的にどのようなものでしょうか。
ozwk

2016/03/25 01:31

「いろいろなホームページ」の例を1つ2つ挙げてもらえませんか?
guest

回答3

0

ベストアンサー

Javaのbooleanに対しては「ビット演算」ではなく「論理演算」と呼びます。ビット演算ではtrueは1に、falseは0に相当するというだけの話です(実際0と1になっているというわけではなく、あくまで計算上0と1として扱うと画一的に扱える)。
他の言語ではifなどに整数を渡して0か0以外などで条件分岐できるものもあるようですが、それはその言語の仕様です。

投稿2016/03/25 01:30

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sobue

2016/03/26 10:20

いつもありがとうございます。
guest

0

言語によっては-1になる理由を説明します。
(それがもともとの疑問を解決するヒントにもなるはずです)

コンピュータの扱う整数には符号付き整数と符号なし整数(つまり自然数)があるのですが、符号付き整数では負の数をどう二進数表現しているでしょうか。
一般的なのが「2の補数」という方式で、次のように表現します(ここでは8ビット整数を例にとります)。

-1 = 11111111 -2 = 11111110 -3 = 11111101 ⋮ -127 = 10000001 -128 = 10000000

2の補数方式はなかなか良い性質を持っていて勉強してみると面白いのですが、それはおいておいて、全ビットが1になると、数値としては-1になるのです。
C言語だと全ビットが0のデータをfalse、それ以外はすべてtrueだけど、trueの代表は全ビットが1のデータすなわち-1、としています。

「全ビットが1であるデータ」をわざわざ符号付き整数として-1と読まず符号なし整数として読んでもいいのですが、そうすると8ビットなら255、32ビットなら4294967295となり、整数のビット数によって読みが変わってきてしまうので、やはり符号付きで-1と呼ぶのが手軽だし可搬です。

投稿2016/03/25 03:17

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

調べてみましたが、言語の決めらしいです。

投稿2016/03/25 01:30

test0001

総合スコア224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問