public static void main(String[] args) {
//정수 기억 : byte, char, short, int, long
//실수 기억 : float , double
//논리 : boolean
int su1 =1004; //10진수
int su2 = 0b1101; //진수 (0b로 시작)
int su3 = 01004; //8진수 (0으로 시작)
int su4 = 0x1004; //16진수 (0x로 시작)
System.out.println("su1="+su1);
System.out.println("su2="+su2);
System.out.println("su3="+su3);
System.out.println("su4="+su4);
int su116=0x3EC;
System.out.println("su16="+su116);
//println으로 그냥 출력시키면 10진수값으로 출력시킨다
//2진수 1101이 13이 나올수있는 계산법은
//64 32 16 8 4 2 1 (일단위에 이렇게 2의 제곱 숫자를 써놓고)
// 0 0 0 1 1 0 1 (아랫쪽에 바꾸고싶은 2진수를 써놓는다)
//위에 있는것을 그대로 대입하여 더하면 8+4+1=13이 된다
//8진수 계산법은
//쓸라했으나 시간상 부족하기도 하고
//계산기를 쓰길바란다
//큰 수를 계산하는데 있어서 수기로 계산하고있을수는 없지만
//재미로라도 알아두면 좋을거같아 쓸라했지만 다음에 쓸기회가 온다면 그때쓰기로한다 (16진수도 마찬가지)
//20230328
부족한부분 채워넣다가 발견해서 씀
8진수 계산법은 0한자리가 늘어날때마다 각 자리수에 8의 제곱을 곱해주면되는데
예를들어 10의자리 36이 있으면
8^1(=8) * 3 + 8^0 (=1) * 6
24 + 6 = 30
100의자리 324가 있으면
8^2(=64) * 3 + 8^1 (=8) * 2+ 8^0 (=1) * 4
192 + 16 + 4 = 212
1000의자리 6654가 있으면
8^3(=512) * 6 + 8^2(=64) * 6 + 8^1(=8)*5 + 8^0(=1)*4
3072 + 384 + 40 + 4 = 3500
아마 수학 배운사람들은 더 쉬운방법 알고있을테지만
내가 생각해낸 방법은 이게 끝이다 이와 같은방법으로 16진수 32진수 128진수 다 계산가능하다
ex) 16진수 25 >>> 16^1(=16) * 2 + 16^0(=1) *5 = 37
16진수 890 >>> 16^2(=256) * 8 + 16^1 * 9 + 0 = 2192
암튼 계산기쓰자 계산기가짱이다
}
}
출력값:
su1=1004
su2=13
su3=516
su4=4100
su16=1004