0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[例題の為の例題]ダンプ表示を完成させよ!!!(オンラインコンパイラ)メーカーフェアあるよ

Last updated at Posted at 2025-10-02

いろいろ注意

  • 過去ログを見よ!!!
  • arduinoでの予定は、未定
  • いろいろ、競技プログラミングの人や、アルゴリズムの人は、問題に、飢えているのか?(何の事?

目的

ミニプログラム用にダンプを表示させる。

プログラム

  • オンラインコンパイラpaiza


#include <iostream>
using namespace std;
int main(void){
    // Your code here!
    char *b = "0123456789ABCDEF";  //16進の変換テーブル

    //メモリーエリアの確保
    unsigned char RAM[256] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

    int k = 0;  //アドレスのカウンター

    //ヘッターの表示
    printf("add  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F\n");

    for(int i=0;i<16;i++){  //行のループ
        
        //アドレスの表示
        putchar(b[k >> 12       ]);  //上位4ビットを表示
        putchar(b[k >>  8 & 0x0f]);  //12ビット目から4ビット
        putchar(b[k >>  4 & 0x0f]);  //8ビット目から4ビット
        putchar(b[k       & 0x0f]);  //下位4ビットを表示
        putchar(' ');
    
        for(int j = 0;j<16;j++){  //列のループ
            
            //データの表示  
            int a = RAM[k++];
            putchar(b[a >> 4       ]);  //上位4ビットを表示
            putchar(b[a      & 0x0f]);  //下位4ビットを表示
            putchar(' ');
    
        }  //for j
    
        putchar('\n'); //改行
    
    }  //for i
    
}  //main



add  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
0000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

おまけ関数化




#include <iostream>
using namespace std;


void dump_out(unsigned char *dump1,int num){
    // Your code here!
    char *b = "0123456789ABCDEF";  //16進の変換テーブル

    int k = 0;  //アドレスのカウンター

    //ヘッターの表示
    printf("add  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F\n");

    if(num == 0) return;
    
    for(int i=0;i<(((num-1)/16)+1);i++){  //行のループ
        
        //アドレスの表示
        putchar(b[k >> 12       ]);  //上位4ビットを表示
        putchar(b[k >>  8 & 0x0f]);  //12ビット目から4ビット
        putchar(b[k >>  4 & 0x0f]);  //8ビット目から4ビット
        putchar(b[k       & 0x0f]);  //下位4ビットを表示
        putchar(' ');
    
        for(int j = 0;j<16;j++){  //列のループ
            
            //データの表示  
            int a = dump1[k++];
            putchar(b[a >> 4       ]);  //上位4ビットを表示
            putchar(b[a      & 0x0f]);  //下位4ビットを表示
            putchar(' ');
    
        }  //for j
    
        putchar('\n'); //改行
    
    }  //for i
    
}  //main


int main(void){

    //メモリーエリアの確保
    unsigned char RAM[256] = {0xff,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};


    dump_out(RAM,256);

}  //main



0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?