• ベストアンサー

プログラミングのこの画像のデータ型は、変数の右辺に

プログラミングのこの画像のデータ型は、変数の右辺にくるものですよね? 日付や通貨型などもあって、右辺におけるということですか? バイト型というのは整数型と何が違うんでしょうか? また、256以上はどうなるんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

>>変数型? ということは、型は変数にしかないんですか? 関数には型はないんですか? 型はデータの性質に応じてメモリの領域の大きさや プログラムがその値をどう解釈するかという指標です。 なので、データを格納する変数に型が存在します。 関数の場合VBであればfunction procedureがこれに相当しますが、 関数そのものではなく、関数が返す「値」に型があります。 また、関数に「この値を使用して処理してね」と渡す 引数は多くの場合変数を渡しますが、言語によっては実データを 渡すことが出来るものは少なくないです。 しかし、その値を受け取る関数の側では変数なのか 実データが渡されるのか、予測は出来ないですが、 少なくとも「型」だけは予想通りのものが渡されないと 処理できません(そういうふうに作っていますから) これを仮引数といいますが、これにもすでに述べたように、 型が存在します。 つまり関数そのものに型はないですが、戻り値や引数・仮引数に 型が存在します。 コンピュータはバカなのでプログラマがこれを 決めておいてあげないと、簡単な計算すら出来ないのです。 (勿論プログラム言語側で型を予測・判断して、  そこそこ正しい型を自動的に選んでくれる場合もありますが、  これは、そういうふうにプログラミングをするプログラムが  作られているだけで、コンピュータが利口なわけではありません  ・・脱線しすぎですが・・)

okwaveokw
質問者

お礼

ありがとうございます

その他の回答 (4)

  • dell_OK
  • ベストアンサー率13% (766/5721)
回答No.4

代入式の右辺と言う意味でしたら、そうですね、  変数=さまざまなデータ型 となります。 バイト型の扱いは言語によって異なりそうです。 Variantと表記する型で私が知っている言語はVisualBasicですが、 バイト型に256以上の値を代入すると、 オーバーフローと呼ばれるエラーになります。

okwaveokw
質問者

お礼

ありがとうございます

回答No.3

拝見したところそれらは「Visual Basic」の 変数型のように見受けられます。 ですので、通貨型や日付型・byte型・オブジェクト型は 他のプログラミング言語ではほとんど用意されていません。 (使えないということです) で、byte型ですが正直ほとんど使うことがないです。 格納できる値が0から255までしか無いので、 役立たせにくいです(256以上を代入するとオーバーフローします) まあAsciiコードがこの範囲に収まりますので、時々byte型の配列を 作成して文字列をAsciiコードとして保存しておくのに使うくらいしか 私には使いみちが分かりません。 普通に数値を格納するならLong型一辺倒で差し支えありません。 (Integerも範囲が狭いですし、処理速度もLongと大差ないので)

okwaveokw
質問者

お礼

変数型? ということは、型は変数にしかないんですか? 関数には型はないんですか?

回答No.2

>バイト型と整数型は表記のルールがちがうんですか? あ~そういうことね! https://www.php.net/manual/ja/language.types.float.php 代入しようとしている形式が LNUM [0-9]+(_[0-9]+)* DNUM ([0-9]*(_[0-9]+)*[\.]{LNUM}) | ({LNUM}[\.][0-9]*(_[0-9]+)*) EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM}) の正規表現にマッチすれば浮動小数とするようですね。 #PHP 7.4.0 以降 あと、文字列は、'シングルクオートもあります。 エスケープの有無が違うので、 エスケープがない場合は、シングルを使う用が、 微妙に、速いです。

okwaveokw
質問者

お礼

ありがとうございます

回答No.1

>バイト型というのは整数型と何が違うんでしょうか? >また、256以上はどうなるんでしょうか? 細かい見方をすれば、 tinyintみたいな、さらに小さい数字もありますが。 ひとまず、 Byte=つまり1バイトで表せる数字は 2^8-1=255までなので、 256は「0」です。257は「1」 これは、8ビット目(0オリジンで)が1がたっても、 0-7ビット目には影響しないために起こる現象です。 同じように、Word型(またはShort)は16ビット=65535と 1つの領域がどの数字まで表せるか?を つなげてメモリは使われているので、 適切な物を選べばそれでいいのです!。 なので、1,2,3を表すなら Byte配列でもInt配列でもいいわけです。 しかし、1,100,1000を表す場合、 Byteでは1000が入れられないので、それよりも大きいWord/Shortや Intなどを使っているという具合です。 ただし、Intは通常4バイトもあり、 逆に、Byteは1バイトなので、格納に4倍の情報量を 使用するので小さい値を入れる場合は「無駄」の方が増えます。 の、バランスです。 むしろ上の絵では、StringとByteの違いを 考える方が、良いかもですよ!。 (いつか、その問題にぶつかる日が来ますので、  覚えておくといいかもです)

okwaveokw
質問者

お礼

ありがとうございます バイト型と整数型は表記のルールがちがうんですか? 文字列は""ダブルクォーテーションで囲む等

関連するQ&A