C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++のunsigned charとは?signed charとの違いをわかりやすく解説

はじめに

C++には、1文字を扱うためのchar型というデータ型があります。その中でも「unsigned char」という型を目にすることがあります。本記事では、unsigned charが何を意味するのか、そしてsigned charとの基本的な違いについて詳しく解説します。

char型とASCII値の関係

signed charもunsigned charも、どちらも1つの文字を格納するために使用されます。変数には実際には文字のASCIIコード(数値)が保存されます。例えば、「A」を格納した場合、内部的には65という数値が保持される仕組みです。

signed charの場合はsignedキーワードを明示的に書く必要はありませんが、unsigned charを使う場合はキーワードを必ず指定しなければなりません。構文は以下の通りです。

unsigned char ch = 'n';

値域の違い

signed charとunsigned charは、どちらも8ビット(1バイト)のサイズを持っています。しかし、表現できる値の範囲が異なる点に注意が必要です。

  • signed char:-128 ~ +127
  • unsigned char:0 ~ 255

拡張ASCII文字の扱い方

基本的なASCIIコードは0から127の範囲に収まっています。それ以降の部分は「拡張ASCII」と呼ばれます。通常のcharやsigned charでは、値域が-128~+127であるため、拡張ASCIIの文字を正しく格納することができません。一方、unsigned charは0~255まで表現できるため、拡張ASCII領域の文字も問題なく扱えるのです。

まとめ

unsigned charは、8ビットすべてを正の値の表現に利用できるため、0~255の範囲の値を扱えます。基本的なASCII文字だけを扱うのであればcharで十分ですが、拡張ASCIIやバイト単位のバイナリデータを扱う場合には、unsigned charを選ぶのが適切です。用途に応じて両者を使い分けることで、より安全で意図通りのプログラムを書くことができます。

  1. C++のsigned(符号付き)とunsigned(符号なし)キーワードとは?違いと使い方を解説

    C++における符号付き・符号なしデータ型の基本C++では、すべての数値型に対して「符号付き(signed)」か「符号なし(unsigned)」かを指定できます。たとえば、int型を宣言する際に正の整数のみを扱うよう指定することも可能です。特別な指定がない場合、すべての整数型はデフォルトで符号付き(signed)として扱われます。つまり、正負どちらの値も保持できるということです。一方、unsignedキーワードを使用すると、符号を持たない変数を宣言できます。サンプルコード#include<iostream>using namespace std;int main() { &

  2. C++プログラミング言語とは?特徴と基本をわかりやすく解説

    C++は、1979年にベル研究所のビャーネ・ストロヴストルップ(Bjarne Stroustrup)によって開発されたプログラミング言語です。高水準言語と低水準言語の両方の特徴を兼ね備えていることから、「中級言語(ミドルレベル言語)」と位置づけられています。C++はC言語のスーパーセットであり、事実上すべての有効なCプログラムは、そのまま有効なC++プログラムとして扱えます。さらに、WindowsやmacOS、各種UNIXなど、幅広いプラットフォームで動作する点も大きな魅力です。システム開発からゲーム、組み込みソフトウェアまで、多岐にわたる分野で長年活用され続けています。C++の主な言語特性C