A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
完全に変換する方法はありません。
最近主流の32bit用C言語では、shortは16bit、unsigned charは8bitが使われています。
Cの規格に照しあわせても、shortはchar以上のビット数であることが決められています。「以上」なので同じビット数でもいいのですが、多くの処理系ではcharより大きいと考えた方がよいでしょう。
また、shortには負の値がありますが、unsigned charには負の値はありません。
以上から、shortで表現できる値には、unsigned charでは表現できない値が存在することになります。
そのため、値の取り得る範囲であるとか、足りない精度をどう補うとかいった条件が付きます。
また、これとは別に、ファイル等への入出力で、16bit整数を2バイトで対応するケースがあります。
あなたがやりたい変換はどちらなのでしょうか?
No.2
- 回答日時:
単にキャストするだけです。
short int x = -123;
(unsigned char)x;
あるいは、unsigned char型の変数に代入するような場合は、暗黙的に変換されます。
short int x = -123;
unsigned char y;
y = x;
符号付き整数型から符号無し整数型に変換する場合、変換前の値を変換後の型で表現できない場合は、変換後の型の最大値+1を法とする剰余になります。
No.3
- 回答日時:
変換できない値の場合にどうしたいのかでやり方が変わります。
汎用的には変換できません例外として報告するようにするのかな。
変換元のshort intで値が0~255の時は問題なく変換できますが、他の場合にはどう処理するかを決める必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2の補数の計算について
-
型の変換
-
VB初心者です。
-
vb6の桁数指定
-
VBA 変数名に変数を使用したい。
-
【VB】コンボボックスにデータ...
-
WORD VBA プログラム修正をお願...
-
クリスタルレポートで困ってい...
-
Excel VBAでグループ毎に集計す...
-
Dir関数で読み取り順を操作でき...
-
VBとアクセスでSQL文に変...
-
エクセルデータをVBで検索でき...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
構造体配列の一部初期化!!!
-
ExcelVBAについて
-
VB6で、一次元配列と二次元配列...
-
Access VBA 添付型フィールド
-
webからの帳票表示
-
COBOL数値転記の仕様
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
VB6.0の「vbFromUnicode」はVB....
-
16進をASCIIコードに変換する...
-
バイト型のデータをLong型に変換
-
16進コード文字列を文字列に変換
-
【C++/CLI】int型からString型...
-
C++ 文字列変数と16進数の比較
-
vb6の桁数指定
-
2の補数の計算について
-
VBAのstrConv関数のUNICODE変換...
-
VB6.0 String型→Long型変換方法...
-
WORD型をCString型に変換する方法
-
数字→漢数字変換
-
C#でListとDictionaryの判別方法
-
Boolean型変数の値を反転する方法
-
文字型を日付/時刻型に変換する...
-
textbox.textやlabel.captionの...
-
エクセルでメールヘッダーを解...
-
2進数から10進数へ変換
-
対数変換のついて
おすすめ情報