
現在Microsoft Visual C++ 2010 Expressでプログラミングの勉強中なのですが、
2の補数計算で
”100000004466FFFFFFFFFFFFFFFFFFFFFFFFFFFF”
この数値の加算後の2の補数を行った際に
最終的にiToal = 3756
となり、最後に次のプログラムを実行しました。
iHosu = ~iTotal; // 1の補数
iHosu++; // +1
sprintf( cAns, "%s%02X%c", cOrg, iHosu, 0x22 );
最終的には結果が
”100000004466FFFFFFFFFFFFFFFFFFFFFFFFFFFF54”
と出てほしいのですが、
”100000004466FFFFFFFFFFFFFFFFFFFFFFFFFFFF154”
とでます。
iHosuの下2桁の文字だけを文字列につけるようにしたいのですが、どうしたらよいでしょうか?
No.2ベストアンサー
- 回答日時:
「必要なところ」のみが取り出せるよう, 適切な演算をしてください.
回答頂きありがとうございます。
iHosu = ~iTotal; // 1の補数
iHosu++; // +1
iHosu = iHosu & 0x00FF;
sprintf( cAns, "%s%02X%c", cOrg, iHosu, 0x22 );
printf( "%s\n", cAns ); //文字列結果」
このようにすることでできるようになりました。助かりました。
No.1
- 回答日時:
iHosu = ~iTotal; // 1の補数
iHosu++; // +1
iHosu &= 0xff;
sprintf( cAns, "%s%02X%c", cOrg, iHosu, 0x22 );
>と出てほしいのですが、
>”100000004466FFFFFFFFFFFFFFFFFFFFFFFFFFFF154”
>とでます。
注意力が不足している。
”100000004466FFFFFFFFFFFFFFFFFFFFFFFFFFFF154”
ではなくて
”100000004466FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF154”
が出ている筈だ。「F」の個数を良く数えてみなさい。
回答頂きありがとうございます。現在私はATmega88というマイコンのプログラミングなどをしているのですが、このマイコンのEEPROMメモリーの内容を書き換える際にテキストファイル化されたインテルHEXというテキストを扱うときがあり、データの編集をテキストエディタで行う際に2の補数計算が必要になります。
int型が32ビットなので、FFFFF154が後ろに付くと思うのですが、インテルHEXファイルのフォーマットなのでしょうがこの中の54の部分のみが必要になるようです。
なるべくなら、54以外の文字列を消したいと考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java Java 配列<選挙> 4 2023/07/31 15:07
- 計算機科学 2進数の計算について 2進数の値は全て8ビットで負数は2の補数形式とする。結果が8ビットで表現出来な 3 2023/07/22 14:08
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- 物理学 Lagrangian や Hamiltonianの妥当性評価 1 2022/08/30 13:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
visual studio 2022でのC#プロ...
-
gccを行ってもexeファイルが生...
-
C言語について。
-
VisualStudioでC++クラスを追加...
-
Notepad++の関数リスト表示でC...
-
C#でログファイルにファイルパ...
-
c#のTLS1.2での通信について
-
大量のデータを読み込んで表示...
-
C#でTreeViewのCheckBoxのサイ...
-
Notepad++の関数リスト表示の変...
-
VisualStudio2022でC言語プログ...
-
Cのコンパイルでコメントアウト...
-
C言語の質問です。バイナリ形...
-
int16_t の _t は何?
-
【C言語】全角文字の配列を、全...
-
Windows Formアプリからコンソ...
-
C# DatagridviewにExcelシート...
-
C# で 数式文字列処理を処理す...
-
プログラムの実行時に'<'でリダ...
-
インクリメント演算子のみを用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2の補数計算でのsprintf関数の...
-
MPWの使い方
-
CかC++どちらを覚えるべきですか?
-
本の紹介
-
C言語について
-
「情報科学入門Rubyを使って学...
-
Windowsプログラミング、全部こ...
-
Rudyを覚えたい
-
Visual Basic を勉強しています...
-
c言語でウィンドウズアプリケー...
-
fortran90について
-
プログラミングソフトとC言語の...
-
.NETを勉強したく、C#やVB.NET...
-
Ruby / passenger のインストー...
-
小文字wと大文字Wの区別
-
COBOLのIFの入れ子について
-
プログラミング講師はまだ需要...
-
プログラミング言語で大文字と...
-
ruby.exeとrubyw.exeに違いがあ..
-
RubyでNo such file or directo...
おすすめ情報