Click to Hide.




import java.util.Scanner;

public class Chmod {
    public static void main (String[] args) {
        System.out.println("Welcome to the CHMod Converter! " +
                " \nThis will only take numbers mod 8 to ensure that 
                no invalid numbers are inputted. "
                + "\nFor special permissions, it is taken mod 5.");
        Scanner input = new Scanner(System.in);
        System.out.print("Enter special permissions #: ");
        int a = (input.nextInt()) % 5;
        System.out.print("Enter read permissions #: ");
        int b = (input.nextInt()) % 8;
        System.out.print("Enter write permissions #: ");
        int c = (input.nextInt()) % 8;
        System.out.print("Enter execute permissions #: ");
        int d = (input.nextInt()) % 8;
        input.close();

        String owner = convertBinary3(b);
        String group = convertBinary3(c);
        String others = convertBinary3(d);

        boolean readOwner = owner.charAt(0) == '1';
        boolean writeOwner = owner.charAt(1) == '1';
        boolean executeOwner = owner.charAt(2) == '1';
        boolean readGroup = group.charAt(0) == '1';
        boolean writeGroup = group.charAt(1) == '1';
        boolean executeGroup = group.charAt(2) == '1';
        boolean readOthers = others.charAt(0) == '1';
        boolean writeOthers = others.charAt(1) == '1';
        boolean executeOthers = others.charAt(2) == '1';

        System.out.print(owner + " " + group + " " + others + " and ");

        OwnerTree(readOwner, writeOwner, executeOwner, a);
        GroupTree(readGroup, writeGroup, executeGroup, a);
        OthersTree(readOthers, writeOthers, executeOthers, a);

    }
    public static String convertBinary3(int b) {
        String owner;
        if (b == 1) {
            owner = "00" + Integer.toBinaryString(b);
        }
        else if (b < 4 && b > 1) {
            owner = "0" + Integer.toBinaryString(b);
        } else if (b == 0) {
            owner = "000";
        }
        else {
            owner = Integer.toBinaryString(b);
        }
        return owner;
    }
    public static void OwnerTree(boolean read, boolean write, 
    boolean execute, int SpecialMod) {
        if (read) {
            System.out.print("r");
        } else {
            System.out.print("-");
        }
        if (write) {
            System.out.print("w");
        } else {
            System.out.print("-");
        }
        if (execute) {
            if (SpecialMod == 1) {
                System.out.print("s ");
            } else {
                System.out.print("x ");
            }
        } else {
            System.out.print("- ");
        }
    }
    public static void GroupTree(boolean read, boolean write, 
    boolean execute, int SpecialMod) {
        if (read) {
            System.out.print("r");
        } else {
            System.out.print("-");
        }
        if (write) {
            System.out.print("w");
        } else {
            System.out.print("-");
        }
        if (execute) {
            if (SpecialMod == 2) {
                System.out.print("s ");
            } else {
                System.out.print("x ");
            }
        } else {
            System.out.print("- ");
        }
    }
    public static void OthersTree(boolean read, boolean write, 
    boolean execute, int SpecialMod) {
        if (read) {
            System.out.print("r");
        } else {
            System.out.print("-");
        }
        if (write) {
            System.out.print("w");
        } else {
            System.out.print("-");
        }
        if (execute) {
            if (SpecialMod == 4) {
                System.out.print("t ");
            } else {
                System.out.print("x ");
            }
        } else {
            System.out.print("- ");
        }
    }
}