16進法に関する問題!
問題概要
0 以上 255 以下の整数 が与えられる。
の 16 進法表記を求めよ。
考えたこと
16 進法について知識がなかったら、たとえば次のような記事で勉強するとよさそう!
であり、今回与えられる整数 は 255 以下なので、「 を16進法で表したら 2 桁以下」になる。つまり、16進法で表したときに、 の位と、 の位の値がわかればよい。
- の位の値:これは
N % 16
によって求められる。この値が 10, 11, ..., 15 であるときは A, B, ... F とすればよい - の位の値:これは
N / 16
によって求められる。この値が 10, 11, ..., 15 であるときは A, B, ... F とすればよい
以上によって、求められる。
コード
#include <bits/stdc++.h> using namespace std; // 16進法における桁の値を、文字に変換する char conv(int a) { if (a < 10) return '0' + a; else return 'A' + (a - 10); } int main() { int N; cin >> N; cout << conv(N / 16) << conv(N % 16) << endl; }