ucharとchar、scharの違い
1364 ワード
一、ucahr:画像処理でよく使われるデータ型ucharで、一般的にunsigned charを指し、8-bit符号なし整形データであり、範囲は[0,255]であり、その定義は以下の通りである.
二、schar:ucharに対応するのはscharで、定義は
取値範囲は[-128,127]であり、8-bit画像の階調レベル[0,255]に1つずつ対応しているため、画像階調操作の際によく用いられる(16進数の0 xffは10進数の255に対応).
三、char:charはC/C++整数型データの中で比較的奇妙なもので、単一文字を収容できるデータ型であり、他のint/long/shortなどsigned/unsignedを指定しない場合はデフォルトでsignedであるが、charは標準ではunsignedであり、コンパイラは記号付きに実現することができ、記号付きに実現することもでき、pSOSのようなコンパイラもある.また、コンパイルスイッチにより、符号数があるか無符号数かを指定することもでき、値範囲は[−128,127]である.
typedef unsigned char uchar;
二、schar:ucharに対応するのはscharで、定義は
typedef signed char schar;
取値範囲は[-128,127]であり、8-bit画像の階調レベル[0,255]に1つずつ対応しているため、画像階調操作の際によく用いられる(16進数の0 xffは10進数の255に対応).
#define CHAR_BIT 8 /* number of bits in a char */
#define SCHAR_MIN (-128) /* minimum signed char value */
#define SCHAR_MAX 127 /* maximum signed char value */
#define UCHAR_MAX 0xff /* maximum unsigned char value */
三、char:charはC/C++整数型データの中で比較的奇妙なもので、単一文字を収容できるデータ型であり、他のint/long/shortなどsigned/unsignedを指定しない場合はデフォルトでsignedであるが、charは標準ではunsignedであり、コンパイラは記号付きに実現することができ、記号付きに実現することもでき、pSOSのようなコンパイラもある.また、コンパイルスイッチにより、符号数があるか無符号数かを指定することもでき、値範囲は[−128,127]である.