• ベストアンサー

C言語の質問です。

katouka09の回答

  • katouka09
  • ベストアンサー率50% (130/256)
回答No.3

質問者さんはどの程度のプログラムが作成できるのでしょうか? 1.開いたデバイスやファイルから2バイト読み込むプログラムを作成することはできますか? 2.2バイトのデータをどのように表示させたいのでしょうか?   2進数、10進数、16進数? 3.論理演算を使用したプログラムは作成できますか? 4.2バイトのデータを0xF000でマスクするとどうなりますか?

関連するQ&A

  • C++での24bit符号付き整数値の処理

    現在wavファイルからデータを読み出し、少数倍して再び格納するプログラムを作成しています。 量子化ビット数が16,32bitの場合は読み出したデータをshort型,int型の変数に入れて、そのまま計算が出来るのですが、C++には24bitの変数型がないため、24bitデータの処理に苦戦しています。 1サンプルあたり24bitで格納されているデータを読み出し、(double)倍したのち再び24bitずつ(3byte間隔で)書き込むにはどのようにすれば良いでしょうか? 一度int型に格納し、計算してから上位3byteを書き込む方法が簡単だとは思うのですが、負の値の扱いに困っています。 どなたかサンプルプログラムをお教えいただけると幸いです。

  • c言語 Bitについて

    100bit存在したとして、98Bit目に対してフラグを表示したい場合どのように行ったら最適でしょうか? 現場Byte算出して該当するバイト箇所にビットを立てている状況です。 98bit目に直接触る事は可能でしょうか。 また10Bitずつ区切って表示したい場合どのように行ったら最適でしょうか? 色々調べたのですが、思い通りの状態へは至っておりません。 お力をお貸しください。 宜しくお願い申し上げます

  • c言語の記述で困っています。

    c言語の記述で困っています。 USBは、メッセージベースの通信バスであるため、PCとUSBデバイスが通信を行う際は、コマンドとデータをテキストまたはバイナリ形式で送受信しています。各USBデバイスには固有のコマンドセットがあります。USBデバイスからの応答を読み取るにはRead/Write関数を使用して、それらのコマンドを計測器に送る必要があると思いますが、具体的にreadやwriteでどのようにc言語で記述したらいいのかわかりません。分かりやすいサンプルやホームページ等ありましたら教えて下さい。よろしくお願いします。 ちなみに、私が使用しているUSBデバイスのコマンドはhexです。

  • C言語のfwrite関数について

    現在,バイナリのデータを処理するプログラムを作成しています。 おおまかに言えば,ファイルA(バイナリモードでオープン)からバイナリでデータを読み込んできて,そのデータを処理してファイルB(バイナリモードでオープン)に書出す,のようなプログラムです。 その処理したデータを入れるデータ型にunsigned long long int型(64bit)を使用しています。 その処理データをファイルBに書出す時に,fwrite関数を用いています(例参照)。 (例) for(i=0; i<N; i++){ fwrite(&c[i], sizeof(c[i]), 1, fp); } //配列cが「unsigned long long int型」です。 //配列cは最初に"0"で初期化しています。 //fpはファイルポインタです。 しかし,本システムでunsigned long long int型が実際に使用しているのは下位32bitです。 上の例で書出した場合,上位32bitの"0"も書出されていることになるのでしょうか。 書出されたファイルのサイズを見れば,64bit全て書出されているようですが,計算間違いで32bitを超えたところまで何かデータが入っている可能性もあります。 どなたはfwrite関数に詳しい方,ご回答をよろしくお願いします。

  • C言語を始めよう!

    C言語を始めよう! http://www.forest.impress.co.jp/article/2002/10/24/cwohajimeyou.html を使用しています。 NT4/2000/XP で、16 ビットプログラムの実行結果が表示されない  と言う問題は、LSI C-86 Ver.3.30c 試食版をツールを利用して実行するプログラム共通の問題のようです。  CPad for LSI C-86でも、以下のとおり、同様の問題があり、 COMMAND  プログラムで、この問題を解決しようとしています。 phb1122  でも、以前は、 COMMAND を利用した形跡があります。今は、 PIF ファイルを作成 することで解決しています。  なぜ、このような経緯になったのか詳しく解説していただけませんでしょうか? ******************************* WindowsNT/2000上の CPad for LSI C-86 で、コンパイルはできるが、実行結果が表示されない これは LSI C-86 が16ビットアプリケーションであるために起こる現象です。 解決策は、作成した実行ファイルを実行する前に一度、Windows9xとの互換性のために用意されているcommand.comを実行することで回避できます。 CPad での設定方法は、 [設定]ダイアログ-[高度な設定]ページの[以下の設定を変更する(C)]にチェックをしてから、[実行するコマンド(B)]に %WINDIR%\system32\command.com /c exit > nul と記述して[OK]ボタンをクリックします。 これでNT/2000上でも LSI C-86で作成した実行ファイルの出力を確認できます。 また、この現象が起こらない場合もあるようですが、どういう環境で起こって、どういう環境で起こらないのかははっきりわかっていません。 *********************** C:\phb1122\phoebe.htm ★ NT4/2000/XP で、16 ビットプログラムの実行結果が表示されない場合について Windows NT4/2000/XP で、LSI C-86 試食版を使って 16 ビットプログラムを作成して実行した際に、出力結果が表示されず、空欄になってしまう場合があります。この現象についていろいろ調査してみましたが、NTVDM.EXE の動作に原因がありそうというだけで、それ以上がどうしても分かりません。しかし、強制的に MS-DOS プロンプトを起動させられればうまくいくのではと考え、PIF ファイルを作成し、それを介して実行することで、とりあえず出力結果を表示させることに成功しました。メニューの「ビルド(B)」→「PIF を作成して実行(I)」をチェックすることで設定できます。このメニューは、LSI C-86 試食版をコンパイラに設定しているときのみ有効です。 敬具

  • c言語について

    身長と体重を読み込んで平均を表示するプログラムについて、 Aiba 160 59.3 KUrata 16251.6 Masaki 182 76.5 Tanaka 170 60.7 Tsuji 175 83.9 Washio 175 72.9 とういデータがテキストファイル"hw.dat"として保存されていなければならないのですが、保存の仕方が分からず、必ずファイルをオープンできません。 どうか保存の仕方を具体的なプログラムを交えながら教えていただきたいです><

  • C言語でBMP(16bit)を扱う方法

    組み込みソフトの作成を行なっており、液晶に画像を表示するソフトを 作りたいと思っております。 16bitのビットマップ画像をC言語のソースにするにはどうすればよいでしょうか? interface2011年5月号の付録(Renesas RX62N)を使用して、3.5インチQVGAのTFT液晶に 画像を表示したいと思っているのですが、自分で用意した16ビットのビットマップ画像を どうすればC言語ソースに落とせるのかがわかりません。 付録のサンプルプログラムでは、pct_data[]={65535,65535,・・・・}; と各ドットを16bitで表現した配列になっているのですが、ビットマップデータからこのような 配列の作成方法を教えて頂けると助かります。 よろしくお願いいたします。

  • バイナリ表記を表示するコードが分かりません(C言語)

    下記のプログラムはビットごとのANDを使って、 キーボードから入力された文字のASCIIコードをバイナリ表記で表示します。 #include <stdio.h> #include <conio.h> int main(void) { char ch; int i; printf("文字を入力してください: "); ch = getche(); printf("\n"); /* バイナリ表記を表示する */ for(i=128; i>0; i=i/2) if(i & ch) printf("1 "); else printf("0 "); return 0; } 【質問】 「バイナリ表記を表示する」部分のコードで、 1バイト(8bit)の最上位ビットは128(2の7乗)の重みがあり、それを初期値に与えて、 「i=i/2」で64,32,16,8,4,2,1と重みが下がっていくというのは分かりますが、 if(i & ch) で、どうして「i & ch」とすることで、バイナリ表記が表示できるのでしょうか? どなたか教えて頂けないでしょうか?お願いします。

  • C言語で電話帳機能を実現

    現在C言語を勉強しております。 電話帳として、名前と電話番号をファイルへ保存し、表示や1件ずつの編集、削除を行うプログラムを作成してみたいと思い、サンプルとなるソースが無いかネットで探してみたんですが、見つかりませんでした。 (eーラーニングならあった) ファイルアクセスや構造体の利用等、基本的な部分が分かれば考えながら作成出来るとは思うんですが、どなたかご存知の方がおられたらサンプルとなりそうなソースが見れるサイト等を教えていただけないでしょうか? よろしくお願いいたします。

  • HSP言語でテキストファイルを保存するスクリプト

    HSP3.0言語を今日から勉強しています。 ファイルの読み書きするサンプルプログラムを教えてください。 例 1レコード目 "1234567890" 2レコード目 "ABCDEFGHIJ" 3レコード目 "アイウエオカキクケコ" 4レコード目 "亜亥宇得尾" 質問1.上の4レコードを保存するプログラムはどう記述すればよいですか。 質問2.保存された4レコードの内、3レコード目を読み込んで表示するプログラムはどう記述すればよいですか。 質問3.保存された4レコードの2レコード目の3バイト目を"W"に書き換えるプログラムはどう記述すればよいですか。 以上、よろしくお願いします。