unsigned char |
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS) |
読み:アンサインド-チャー |
外語:unsigned char |
品詞:名詞 |
|
特徴 |
C/C++ |
unsigned、charはそれぞれが予約語であり、この組み合わせである。
変数の長さ自体はcharと同じであるが、符号ビット分の1ビットが無いため、有効数値ビット数が1ビット分長くなる。代わりに0と正の数しか利用できない。
Cの標準関数で、文字を扱うものは基本的にcharである。主要な実装では、GCCは符号無しのunsigned charとなる実装が多いようだが、Microsoft C/C++では符号ありのsigned charである。
printfのフォーマット文字列は、標準的には%hhuなどを用いるが、C99以降でしか対応しない。
一般的には、unsigned intと同様に%uが使われる。
パーソナルコンピューターでは一般に8ビット長だが、DEC PDP-10、IBM 7090、ACOS-6の動作するNECのメインフレームなど、36ビットワードマシンでは1バイトが9ビットであり、charも9ビット長となっている。
ANSI Cの時代より、limits.hにおいて以下のマクロ定数が定義されるようになった。これを利用すると、その環境での長さを得ることができる。
ISO Cには、次のtypedefが存在する。
typedef unsigned char u_int8_t;
System V等古い実装では、次のtypedefが存在する。
typedef unsigned char unchar;
BSD系を中心に、次のtypedefが存在する。POSIX準拠の実装(_POSIX_SOURCE定義)では使用できない。
typedef unsigned char u_char;
Windowsでは、次のtypedefが存在する。
typedef unsigned char BYTE;
typedef unsigned char UCHAR;
Java |
Javaにはunsigned charは存在しない。
Javaのcharは常に符号なしの16ビット長である。unsigned char相当であるとはいえるが、Javaの場合はcharにsigned/unsignedの指定をすることはできない。
なお、Cにおけるcharと同等の予約語は、Javaではbyteとなる。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |