Смысл метода простой: нужно показать 64 бита и только там 1, где нужно в зависимости от параметров, что переданы метод. Можно представить эти 64 бита как карту 8*8.
/*
ABCDEFGH
┌────────
1│10000000
2│00000000
3│00000000
4│00000000
5│00000000
6│00000000
7│00000000
8│00000000
*/
В метод залетает буква и цифра - А1 например ( как в примере выше ), там и должна быть единица.
public static void shoot(String shot) {
int columns = (int) shot.charAt(0) - 64;
int rows = Character.getNumericValue(shot.charAt(1));
int sdvig = 8 * ( 8 - rows);
long firstValue = (long) Math.pow(2, 8 - columns );
System.out.println(Long.toBinaryString(firstValue << sdvig));
}
shoot("A1");
Не очень понимаю решение выше, но оно работает.
Я был бы крайне благодарен, если бы объяснили зачем тут Math.pow