A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
unsigned char だろうと char だろうと int だろうとやることは同じです. さて, int の配列だったらどうしますか?
ちなみに #2 はいくつか誤解しているところがあるのでその指摘もしておきましょう.
・ただの char が signed であるか unsigned であるかは処理系依存です.つまり
char buff[3];
という宣言が
unsigned char buff[3];
と同じであるような処理系も存在しえます.
・C において負数の表現方法には「2の補数」, 「1の補数」, 「符号+絶対値」のいずれもがありえます. なので, signed char で表すことのできる最小値である SCHAR_MIN は規格上 (-128 ではなく) -127 以下となっています.
・念の為書いておくと, char のビット数も処理系定義です.
No.2
- 回答日時:
このような質問をされると言うことは、「signed(符号付き)」と「unsigned(符号無し)」を理解されていないようですね。
char buff[3]
と宣言した場合、省略可能なだけで、「signed char buff[3]」になります。
2進数で表記した場合に、先頭ビットが符号になるものが符号付きで、符号にならないものが符号無しです。
0000 0000~0111 1111が正の数
1000 0000~1111 1111が負の数
つまり、先頭ビットが0なら正、1なら負になるのが符号付きで、-128~127までの数値が表現出来ます。
これに対し、符号無しでは、先頭ビットに意味を持たず全て正の数になるので
0000 0000~1111 1111で、0~255となります。
intの場合も同様です。(32ビットの場合)
signed int -2147483648 ~ 2147483647
unsigned int 0 ~ 4294967295
メモリ上では「0」「1」の2進数で保存されているので、これを人間が理解しやすい10進数などで表記する際に先頭ビットを符号として扱うか否かの違いなだけです。
No.1
- 回答日時:
>上記の配列の宣言後、バイト毎に入力する方法
buf[0] = 0;
buf[1] = 1;
buf[2] = 2;
>上記の配列の宣言後、文字列として入力する方法
memcpy(buf,"\0\1\2",sizeof buf);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- C言語・C++・C# 【C言語】全角文字の配列を、全角のまま1文字ずつ出力する方法 4 2023/05/09 15:08
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- マウス・キーボード Google検索の英語キーボード 英語のキーボードの配列が元に戻らなくなりました まえの配列は左上に 1 2022/06/19 11:41
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
char*を初期化したいのですが
C言語・C++・C#
-
C++17で、unsigned char * 配列を、文字列リテラルで初期化する方法はありませんか?
C言語・C++・C#
-
unsigned char の配列で途中で0を含む時のstrlen
C言語・C++・C#
-
-
4
C言語でunsigned char配列を連結する方法ってありますか?
C言語・C++・C#
-
5
#defineの定数を文字列として読み込む
C言語・C++・C#
-
6
std::stringからLPCWSTR型への変換
C言語・C++・C#
-
7
バッファとは何ですか
C言語・C++・C#
-
8
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
9
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
10
C++ 構造体の一括初期化 {0}
C言語・C++・C#
-
11
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
12
C言語での引数の省略方法
C言語・C++・C#
-
13
関数から配列を返すには?
C言語・C++・C#
-
14
char型にint型の数値を代入する。
C言語・C++・C#
-
15
printf による16進表示について
C言語・C++・C#
-
16
変数の値が勝手に変化する原因
C言語・C++・C#
-
17
c++,ある関数のクラスから別のクラスの関数を呼ぶ
C言語・C++・C#
-
18
int型の内容をbyteの配列にコピー
Java
-
19
文字列の切り出し
C言語・C++・C#
-
20
コンボボックス表示文字列を取得する場合
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
C言語初心者 構造体 課題について
-
ExcelVBAで質問です。離れた二...
-
配列で格納したものをmsgboxで...
-
C# Listを使わずに2次元配列の...
-
配列を含む構造体の初期値について
-
unsigned char配列への入力の仕方
-
C言語で特定列だけを抽出して配...
-
配列の参照渡しで型が一致しま...
-
複数の選択範囲の行番号を個別...
-
パイソンの
-
スマホの数字キーをISOの配置に...
-
VBでC言語のポインタみたい...
-
C言語初心者 ポインタについて...
-
配列をEraseしてもメモリが開放...
-
C言語 配列の再初期化
-
VB.NET 構造体の配列の検索機能...
-
擬似コード 長さがmの配列でな...
-
【速いブラインドタッチ】手を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列の参照渡しで型が一致しま...
-
配列を使わずに、変数名を動的...
-
VBで構造体の配列を関数に渡す...
-
配列で格納したものをmsgboxで...
-
unsigned char配列への入力の仕方
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
擬似コード 長さがmの配列でな...
-
【速いブラインドタッチ】手を...
-
パイソンの
-
C言語初心者 ポインタについて...
-
ExcelVBAで質問です。離れた二...
-
配列を含む構造体の初期値について
-
複数の選択範囲の行番号を個別...
-
Functionの戻り値を2次元配列...
-
C++ vectorに配列をプッシュしたい
-
先頭アドレスとは何ですか?
-
テキストファイルから文字列を...
-
Redimした動的配列はEraseする...
おすすめ情報