1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | package Pack01; import java.util.LinkedList; import java.util.Random; import java.util.Scanner; import java.util.concurrent.SynchronousQueue; import java.nio.channels.NetworkChannel; import java.util.Collection; import java.util.Collections; import java.util.Iterator; public class Hello { public static void main(String[] args) { //java는 이식성이 높다. 안드로이드 등 , os에 영향을 받지 않는다. //객체 지향 언어이다. = class로 프로그램을 짠다.(기존 class를 잘 활용하자, 상속처럼) //객체 생성시 자동으로 해제해준다 // 모아서 버려주는거 garbage collection //클래스 지원이 끝도없다. //이클립스 IDE활용 자바 개발환경이 가장 보편적이다. /*byte z;//1 short c;//2 char t;//2 int a;//4 long b;// float e; double f; boolean d;*/ //비트연산제어 //-c전용이다 하지만 자바에 있긴하다 //보통 비트연산제어는 10진수 안쓴다. 16진수를 쓴다. //F = 15 1248 -> 4비트 int a = 0X3F5A; int b = 0X00003F5A;//16진수표기 int c = 0X000000FF; //특정비트, 바이트의 내용만 걸러서 내리고 싶을때 &를 쓴다 (채로 밀가루 치듯이) int d = 0XABCD1234; //byte short int long 실행속도는 같다. System.out.printf("%d %x",a,a); System.out.println(); System.out.printf("%d %x",b,b); System.out.println(); System.out.printf("%x",c); System.out.println(); System.out.printf("%08x",a&0X00000FF0);//원하는 위치에 F를 두고 사용한다. 변수%00F00000f System.out.println(); System.out.printf("%08x",d&0X000000FF); System.out.println(); System.out.printf("%08x",d&0X000000FF); System.out.println(); //1010 1011 1100 1101 0001 0010 0011 0100 //0101 0101 1110 0110 1000 1001 0001 1010 55 e6 89 1a int e = 0XABCD1234; System.out.printf("%08x",e>>>1 );//1비트 쉬프트연산 System.out.println(); int f = 0XABCD1234; //1010 1011 1100 1101 0001 0010 0011 0100 //0000 0101 0101 1110 0110 1000 1001 0001 05 5e 68 91 System.out.printf("%08x",f>>>5 );//5비트자리이동 System.out.println(); int g = 0XABCD1234; System.out.printf("%08x",g<<4);//4비트 자리이동 왼쪽으로 한칸 민다. System.out.println(); int h = 0XABCD1234; System.out.printf("%08x",g<<4);//4비트 자리이동 왼쪽으로 한칸 민다. System.out.println(); int h1 = (h&0XFF000000);//ab만 뺴겟다 System.out.println(); System.out.printf("%08d",h1>>>24); int h2 = (h&0X00FF0000);//ab만 뺴겟다 System.out.println(); System.out.printf("%08d",h2>>>16); int h3 = (h&0X0000FF00);//ab만 뺴겟다 System.out.println(); System.out.printf("%08x",h3>>>8); int h4 = (h&0X000000FF);//ab만 뺴겟다 System.out.println(); System.out.printf("%08x",h4>>>0); //캐스퍼 블랜딩,알파 블랜딩 //쉬프트 연산 왼쪽으로 하나씩 밀면 //그 값의 두배가 된다. -> 2의 2승은 2곱함 3승은 3곱함 int a = 23*800; int b = (23<<9)+(23<<8)+(23<<5); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | package Pack01; import java.util.LinkedList; import java.util.Random; import java.util.Scanner; import java.util.concurrent.SynchronousQueue; import java.nio.channels.NetworkChannel; import java.util.Collection; import java.util.Collections; import java.util.Iterator; public class Hello { public static void main(String[] args) { int n = 23; int a = n*800; int b = (n<<9)+(n<<8)+(n<<5); System.out.println(a); System.out.println(b); //b코드는 가독성이 떨어진다. 속도는 빠르나 800번 더한것과 몇번 안더하는것의 차이 int c = 0X12345678;//16진수 int d = 0X12345678; System.out.printf("%08x\n",d|0X00FF00FF); //1로 표시할떄 비트 | int e = 0X12345678; int f = e|0X00010000;//17번째 System.out.printf("%08x\n",f|e); int g1 = 0X00000034; int g2 = 0X00005600; int g3 = 0X00780000; int g4 = g1+g2+g3; int g5 = g1|g2|g3;//g4와g5는 같다 |연산이 더빠르다 System.out.printf("%08x\n",g4); System.out.printf("%08x\n",g5); int h1 = 0X0C;//1100 int h2 = 0X0A;//1010 int h3 = h1^h2;//익스크루시브 or//같은놈이만나면 0 다른놈이만나면 1 배타적 논리 or //0110 System.out.printf("%08x\n",h3); int h4 = 0X1234;//0001 0010 0011 0100 int h5 = h4^0XFFFF;// 1110 1101 1100 1011 System.out.printf("%08x\n",h5); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package Pack01; import java.util.LinkedList; import java.util.Random; import java.util.Scanner; import java.util.concurrent.SynchronousQueue; import java.nio.channels.NetworkChannel; import java.util.Collection; import java.util.Collections; import java.util.Iterator; public class Hello { public static void main(String[] args) { Random rn = new Random(); for (int i = 0; i < 8; i++) { System.out.println(rn.nextInt(10)); } System.out.println(); for (int i = 0; i < 8; i++) { double n = Math.random();//0.0~1.0까지 System.out.println(n); } int num = (int)(Math.random()*-6);//타입 캐스팅 System.out.println(); System.out.println(num); //stack메모리는 지역변수 메모리들 //heap는 new 동적메모리 //stack = FILO = 먼저들어간놈은 먼저나온다. } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package Pack01; import java.util.LinkedList; import java.util.Random; import java.util.Scanner; import java.util.concurrent.SynchronousQueue; import java.nio.channels.NetworkChannel; import java.util.Collection; import java.util.Collections; import java.util.Iterator; public class Hello { public static void main(String[] args) { //int a = 4/0; //ArithmeticException: 수학 예외 //Exception이 발생하면 프로그램은 강제종료가 되는것처럼 보인다. /*int []ar = new int[10]; ar[10] = 100;*/ //배열 경계를 넘어서서 쓴것. try {//try에 넣어준다. //예외가 발생하면 catch로 가라 int a = 4/0; } catch (Exception e) { // TODO: handle exception System.out.println("앵무새"); e.printStackTrace();//오류 보기 } //catch가고 프로그램을 계속 진행해라 System.out.println("호랑이"); /*String s=null; s.toString();*/ //객체가 안에없는데 왜쓰나요 } } | cs |
728x90
'비트 단기 > java' 카테고리의 다른 글
다형성 이어서 추상클래스 (0) | 2018.12.06 |
---|---|
java 다형성 (0) | 2018.12.05 |
java LInkedList 후~ (0) | 2018.12.04 |
java 41번 (0) | 2018.12.03 |
24~ 31 (0) | 2018.11.29 |
댓글