データ型についての質問
初心者ながらC言語について質問させていただきます。
C言語で数値を変数に代入する際に最小サイズの型を選びたいとき、
100であれば1byteのchar型、1000であれば2byteのshort型が適切かと思います。
今、65536 を変数に代入したいのですが、ビットで表すと
(65536){10} = (10000000000000000){2} = 1<<16
となり65536を表すには17bit必要になります。
これを入れるための型はC言語ではintの4byte=32bitの型が適切になるかと思います。
ですが、3byteあれば65536は表すことができるので、4byteではなく3byteの型を使いたいのですが、C言語にはそのような型がありません。
なので無理やり構造体のビットフィールドを使って17bitの型のように扱おうとしましたがうまくいかず、メンバが char c[3]; のみの構造体で3byteの型で試みたりしたのですが
各8bitずつで処理される為桁上がりがせず代替できないです。
自分なりに調べたところC言語では自作で型は作れないそうなので諦めてint型を使うべきなのでしょうか?
これに限らず、何かしら数値を3byteで扱いたい場合などは何か対処できるのでしょうか?
補足(開発環境)
windows10 64bit
bcc32:Cpad for Borland C++ compiler
回答4件
あなたの回答
tips
プレビュー