Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
カラーコードの違いについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30184#CommentId82584
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2016/11/12 12:21:57
>> 同じ色ではあるけれども「負」から「正」に変わってしまうという事なんですね。?
&H80000000 ~ &FFFFFFFF の範囲の値を負数として扱うのか、正数として扱うのか、
符号付きと符号なしの違いということになります。
たとえば Byte 型は 0~255 の範囲の 256種の値を示せます。
SByte 型は -128~127 の範囲の 256 種ですよね。
これらの型は 1バイト(8bit)幅であり、下記のような値をとります。
Byte 内部バイナリ SByte
---- -------------- -----
0 &H00(00000000) 0
1 &H01(00000001) +1
2 &H02(00000010) +2
3 &H03(00000011) +3
: : :
126 &H7E(01111110) +126
127 &H7F(01111111) +127
128 &H80(10000000) -128
129 &H81(10000001) -127
: : :
252 &HFE(11111100) -4
253 &HFE(11111101) -3
254 &HFE(11111110) -2
255 &HFF(11111111) -1
符号なし整数型(unsigned int)は負数を持たないため、値は0から始まります。
符号付き整数型(signed int)では、最上位ビットを 正負を表す符号ビットとして扱いますので、
最大値は符号なしの半分になってしまいますが、その分がマイナス側の値に割り当てられます。
32bit整数型である UInteger(UInt32) 型と Integer(Int32)も同じ関係です。
最上位ビットが 0 の範囲(&H00000000~&H7FFFFFFF)の範囲では
符号なし整数型も符号付整数型も、等しく 0~2147483647 の範囲を示しますが、
最上位ビットが 1 の範囲(&H80000000~&HFFFFFFFF)の範囲においては、
符号なし整数型は 2147483648~4294967295 を表し、
符号付き整数型は -2147483648~-1 を表すことになるのです。
それと、先の回答への補足ですが。
> 【QBColor の場合】
> コンソール画面で使われいた 16色のみを扱う表現です。
> 使用できるカラーコードは 0~15 の 16 種であり、
この 16 色の色番号は、.NET での ConsoleColor.Black ~ ConsoleColor.White に相当します。
QBColor が必要になることはあまり無いと思いますが、一応参考までに。