Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <iostream>
00025 #include <iomanip>
00026 #include <cstdlib>
00027
00028 void output(int val)
00029 {
00030 static int count = 0;
00031 if (count == 0)
00032 std::cout << ' ';
00033 std::cout << " 0x" << std::setfill('0') << std::setw(2) << std::hex << val << std::dec << ',';
00034 if (++count == 16)
00035 {
00036 std::cout << '\n';
00037 count = 0;
00038 }
00039 }
00040
00041 int main()
00042 {
00043 for (int i = 0; i < 256; ++i)
00044 {
00045 int col_diff = i & 0xf;
00046 int row_diff = i >> 4;
00047 if (col_diff == 8 || row_diff == 8)
00048 {
00049 output(8);
00050 continue;
00051 }
00052 if (col_diff > 8)
00053 col_diff -= 16;
00054 if (row_diff > 8)
00055 row_diff -= 16;
00056 if (col_diff == 0 && row_diff == 0)
00057 {
00058 output(8);
00059 continue;
00060 }
00061 if (col_diff != 0 && row_diff != 0 && std::abs(col_diff) != std::abs(row_diff))
00062 {
00063 output(8);
00064 continue;
00065 }
00066 if (col_diff == 0 && row_diff < 0)
00067 output(1);
00068 else if (col_diff == 0 && row_diff > 0)
00069 output(6);
00070 else if (col_diff < 0 && row_diff == 0)
00071 output(3);
00072 else if (col_diff > 0 && row_diff == 0)
00073 output(4);
00074 else if (col_diff < 0 && row_diff < 0)
00075 output(0);
00076 else if (col_diff < 0 && row_diff > 0)
00077 output(5);
00078 else if (col_diff > 0 && row_diff < 0)
00079 output(2);
00080 else if (col_diff > 0 && row_diff > 0)
00081 output(7);
00082 }
00083 std::cout << '\n';
00084 }