A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
前の方の回答と似たようなものですが、
union shortbuff {
unsigned char cr[buffsize];
unsigned short st[bufsizeの半分];
} buff;
fread(buff.cr, 1, buffsize, fp);
以降 buff.st の配列を扱えばいいと思います。
No.4
- 回答日時:
共用体 union を使って[0],[1]ではなく、単に[1],[0]の順序で文字配列に fgetc(fp) などを用いて2バイト読み込むだけのこと。
位置変換の必要はありません。dat.string[1]=fgetc(fp);
dat.string[0]=fgetc(fp);
#include <stdio.h>
int main(void) {
union set1 {
char string[2];
unsigned short buff;
} dat;
printf("dat= ");
dat.string[1] = 0xc9;
dat.string[0] = 0x04;
printf("%X,", dat.buff);
dat.string[1] = 0x65;
dat.string[0] = 0x05;
printf("%X,", dat.buff);
dat.string[1] = 0x0b;
dat.string[0] = 0x06;
printf("%X,", dat.buff);
printf("...\n");
return 0;
}
No.3
- 回答日時:
理由は他の方が書いた通り。
上位バイトが先に並ぶバイト列を、CPU毎に上位下位が決まった順序に変換する関数があります。
#include <arpa/inet.h> /* Linux の場合 */
#include <winsock2.h> /* Windows の場合 */
short buf;
fread(buf,sizeof(short),1,fp);
buf = ntohs(buf); /* 他に htohl(long用), htons,htonl(逆変換) もあり */
No.2
- 回答日時:
little endianのコンピュータでは上位、下位のデータが読み込むと逆になります。
これはコンピュータの特性の為、プログラムで対応するしかありません。
一番簡単なのは、上下をヒックリ返す事だと思います。
buff = ((buff >> 8) & 0xff) | (buff << 8);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 100バイトのバイナリファイルを読み込んで別のファイルに書き込みたいのですが、型をどうすればいいのか 1 2022/11/03 17:11
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
- FX・外国為替取引 pine scriptのコードが動作しない 1 2023/02/01 19:03
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- C言語・C++・C# 略語の読み方について 2 2023/05/25 12:35
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
C言語でunsigned char配列を連結する方法ってありますか?
C言語・C++・C#
-
エンディアン:2バイトのデータをShort intにしたいのですが?
C言語・C++・C#
-
1バイト文字から2バイト文字に変換
C言語・C++・C#
-
-
4
文字数に合わせて、コントロールの幅を設定する方法
Visual Basic(VBA)
-
5
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
6
int型(2バイト)データの分割
C言語・C++・C#
-
7
配列をnビットシフトする
C言語・C++・C#
-
8
C言語において、 配列要素をひとつずつ前にずらすコード
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
printf による16進表示について
-
空白を含んだ文字列がうまく格...
-
C言語で複数列のデータを1列の...
-
リストの作成と出力(C言語)
-
char型2つを結合し、short型に...
-
C言語のプログラムで、途中で止...
-
タイムカードのシステムを作り...
-
バイナリファイル(画像)のよみ...
-
なぜ無限ループになるかが分か...
-
矢印キーを押下してコンソール...
-
WinInetのInternetOpenUrl関数...
-
プログラミングの授業の課題です
-
10個出力で改行したいのですが...
-
2÷3などの余りについて
-
複数桁10進数の*桁目だけを抽出...
-
マイナスからプラスへ転じた時...
-
*をユーザーが入力した数字の数...
-
2の補数を計算するプログラム
-
fgetsなどのときのstdinのバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
C言語で複数列のデータを1列の...
-
#defineが使用するメモリ領域に...
-
printf による16進表示について
-
空白を含んだ文字列がうまく格...
-
C言語のプログラムで、途中で止...
-
プログラミングの授業の課題です
-
char型2つを結合し、short型に...
-
C言語でのCSVファイルの読み出...
-
矢印キーを押下してコンソール...
-
【C言語】全角文字の配列を、全...
-
エラーについて質問です。
-
リストの作成と出力(C言語)
-
[C]セグメンテーションエラー:...
-
バイナリファイル(画像)のよみ...
-
WinInetのInternetOpenUrl関数...
-
受信データから必要な部分のみ...
-
c言語で文書を読み込み、単語の...
-
VC++でSQLへSELECT文を送ったの...
-
reallocでエラー
おすすめ情報