Beautifulkim 2018. 4. 19. 18:26

import java.util.Random;

//난수발생 객체

Random rand = new Random();



float f = 1.234567890123456789F; //.이하가 7자리까지 표시

double d = 1.234567890123456789; //.이하가 16자리까지 표시

System.out.printf("%.20f\n", f);

System.out.printf("%.20f\n", d);


//byte b = 100; //01100100

//stack memory영역에 1byte할당 

//그곳의 이름 b부여 그리고 값을 100을 넣어줌


// 나머지(%)

z = x % y ;

// %를 문자로 인식 : %%

// "를 문자로 인식 : \"

System.out.printf("\"%d %% %d = %d\"\n", x, y, z);



// System.out: 출력객체

// System.in : 입력객체


//name = scan.next();//문자열 받기(공백없이 받을때)

name = scan.nextLine();//공백포함해서 받기


age = scan.nextInt();// scan으로부터 정수값 받기

// scan.nextDouble()

// scan.nextFloat()

// scan.nextBoolean()


scan.nextLine();//키보드버퍼에 남아 있는 엔터를 제거

addr = scan.nextLine();//공백포함해서 받기





변수를 선언하는 이유 : 차후에 사용하거나 값을 변경하기 위해


%c : 문자형 (대표적으로 char)

%s : 문자열 (캐릭터 배열 or String)

%f : 실수형 (double, float)


%o : octal (8진수)

%d : 정수 (10진수)

%x : hexa (16진수)



8진수 앞에 0을 붙인다.

16진수 앞에 0x 붙인다.


// 연산시 자동형변환

/*

### int 형보다 작은자료형의 연산결과는 int

byte + byte   => int

byte + short  => int

short + short => int

byte + int    => int

### int 형 이상자료형은 큰쪽으로 변환

byte + long   => long

int + long    => long

1   + 1L      =>

int + float   => float

int + double  => double

*/


// 키보드버퍼 = 큐


//형변환 연산자: (cast) 강제형변환

/*

형변환

자동형변환(묵시적형변환)

- 대입시 : 좌변항쪽으로 맞춰진다(자료형 클경우)

- 연산시 : 자료형이 큰쪽으로 맞춰져서 연산


강제형변환(명시적형변환)

(자료형)값

*/




class 단항연산자

{

public static void main(String[] args) 

{

// ~ (tilde:틸드) : 이진논리 Not 연산자 <= 1보수

int n = 10; // 1010

//    0101

System.out.printf("[%32s]\n", Integer.toBinaryString(n));// 2진법 계산

System.out.printf("[%32s]\n", Integer.toBinaryString(~n));// 1보수(~를 붙이면 됨)


n=0xf0f0f0f0;//16진수

System.out.printf("[%32s]\n", Integer.toBinaryString(n));// 2진법 계산

System.out.printf("[%32s]\n", Integer.toBinaryString(~n));// 1보수(~를 붙이면 됨)

n = -1;

System.out.printf("[%32s]\n", Integer.toBinaryString(n));// 2진법 계산

System.out.printf("[%32s]\n", Integer.toBinaryString(~n));// 1보수(~를 붙이면 됨)


n = 10;

System.out.printf("[%32s]\n", n);

System.out.printf("[%32s]\n", ~n);


// ! : 일반논리 Not연산자

boolean bYes = !(3>2);

System.out.printf("bYes=%b\n", bYes);


// ++, -- : 증감연산자 <= 자신의 값을 1씩 증(감)하는 연산자

//          변수++(후위형) : 모든 연산이 종료되고 연산됨

// ++변수(전위형) : 가장먼저 연산되고 종료됨

int m =10;


System.out.printf("m=%d\n", m);

++m; // m = m + 1

System.out.printf("m=%d\n", m);

m--; // m = m - 1

System.out.printf("m=%d\n", m);


int z;

int x=10;

int y=5;

//복합적인 연산에서 전(후)위형의 의미가 있다

z= ++x + y++;

// 연산순서

// 1) ++x => x=11

// 2) z = x + y => z=11+5

// 3) y++ => y=6

System.out.printf("x=%d y=%d z=%d\n", x, y, z);


System.out.printf("--z=%d z++%d\n", --z, z++);


// - : 부호연산자

       x = -10;

   System.out.printf("|%d|=%d\n", x, -x);


   x = -x; // x = x * (-1)

   System.out.printf("|%d|=%d\n", x, -x);


//형변환 연산자: (cast) 강제형변환

/*

형변환

자동형변환(묵시적형변환)

- 대입시 : 좌변항쪽으로 맞춰진다(자료형 클경우)

- 연산시 : 자료형이 큰쪽으로 맞춰져서 연산


강제형변환(명시적형변환)

(자료형)값

*/

// 좌변항 = 우변항

double b = 10; // 1) 10->10.0 변환

   System.out.println(b);

// 강제형변환

float  f = (float)10.0;


// 연산시 자동형변환

/*

### int 형보다 작은자료형의 연산결과는 int

byte + byte   => int

byte + short  => int

short + short => int

byte + int    => int

### int 형 이상자료형은 큰쪽으로 변환

byte + long   => long

int + long    => long

1   + 1L      =>

int + float   => float

int + double  => double

*/

byte b1 = 1;

byte b2 = 2;

byte b3;

b3 = (byte)(b1 + b2);




// 키보드버퍼 = 큐


}

}




class 자료형_double 

{

public static void main(String[] args) 

{

//실수형  : 기본형은 double

//상수    : 0.0 1.2E+001(지수)

//        : 0.0F <= float상수

//출력서식: %f %e<= 소숫점 6자리를 출력

//        : %g   <= 자릿수가 적은쪽으로 출력


//        : %m.nf

//        : %m: 전체자릿수 n:소숫점이하 자릿수



double d= 123.45;

System.out.printf("퍼센트 f : %f\n", d);

System.out.printf("퍼센트 e : %e\n", d);

System.out.printf("퍼센트 g : %g\n", d);


System.out.printf("퍼센트10.1f : [%10.1f]\n", d);//.이하 1자리까지 출력하되 반올림

System.out.printf("퍼센트010.1f : [%010.1f]\n", d);//빈공간은 0으로 채워라


System.out.printf("퍼센트.1f : [%.1f]\n", d);

}

}