전체 글

전체 글

    [JAVA] 변수의 타입(3) [실수형 타입 float, double, 부동소수점수]

    1. 실수형 - float, double 실수형은 float와 double이 있으며, 각 타입의 변수에 저장할 수 있는 값의 범위는 아래와 같다. 자료형 저장 가능한 값의 범위 크기 bit byte float 1.4E-45 ~ 3.4E38 (1.4×10^-45 ~ 3.4×10^38) 32 4 double 4.9E-324 ~ 1.8E308 (4.9×10^-324 ~ 1.8×10^308) 64 8 * float와 double은 양의 범위만 적은 것이며, 음의 범위는 양의 범위에 음수 부호(-)를 붙이면 된다. float 타입을 기준으로 봤을 때, 표현 범위는 '-3.4 × 10^38 ~ 3.4 × 10^38'이지만, '-1.4 × 10^-45 ~ 1.4 × 10^-45' 범위(0은 제외)의 값은 표현할 수 ..

    [JAVA] 변수의 타입(2) [정수형 타입 byte, short, int, long, 오버플로우]

    1. 정수형 - byte, short, int, long 정수형에는 모두 4개의 자료형이 있으며, 크기순으로 나열하면 다음과 같다. byte(1byte) → short(2byte) → int(4byte) → long(8byte) * 정수형의 기본 자료형(default data type)은 'int'이다. 2. 정수형의 표현 형식과 범위 모든 정수형은 부호 있는 정수이므로 왼쪽의 첫 번째 비트를 '부호 비트(sign bit)'로 사용하고, 나머지는 값을 표현하는데 사용한다. S n-1bit * S: 부호비트, n : 타입의 크기(단위: bit) n비트로 표현할 수 있는 정수의 개수 : 2^n개 (=2^n-1개+2^n-1개) n비트로 표현할 수 있는 부호 있는 정수의 범위 : -2^n-1 ~ 2^n-1-1 ..

    [JAVA] 변수의 타입(1) [논리형 타입 boolean, 문자형 타입 char]

    1. 논리형 - boolean 논리형에는 'boolean' 한 가지밖에 없으며, true와 false 중 하나를 저장할 수 있다. 기본값(default)은 false이다. boolean power= true; boolean checked= False; // 에러. 대소문자가 구분됨. boolean형 변수는 대답(yes/no), 스위치(on/off) 등의 논리 구현에 주로 사용된다. boolean형은 true와 false, 두 가지의 값만 표현하면 되므로 1bit로 충분하지만 자바에서는 데이터를 다루는 최소 단위가 byte이기 때문에 boolean의 크기는 1byte이다. 2. 문자형 - char 문자형도 'char' 한 가지 자료형 밖에 없다. char 타입의 변수는 단 하나의 문자만을 저장할 수 있다...

    [JAVA] 2의 보수법 [음수의 2진 표현, 1의 보수+1]

    1. 음수의 2진 표현 n비트를 2진수로 표현하면 값의 개수는 총 2ⁿ개다. 4비트로 예를 들면, 4비트는 2⁴(=16) 개의 값을 표현할 수 있다. 이 값을 모두 '부호 없는 정수(0과 양수)'로 표현한다면 '0부터 15까지의 정수'를 나타낼 수 있다. 그럼 음수를 표현하려면 어떻게 해야 할까? 왼쪽의 첫 번째 비트(MSB)가 0이면 양수, 1이면 음수로 표현하자. 음수를 양수처럼 0처럼 순차적으로 채우게 되면 아래와 같은 문제가 발생한다. 1. 두 수를 더했을 때 2진수로 0이 되지 않는다. 2. 0이 두 개 존재(0, -0) 3. 2진수가 증가할 때 10진 음수는 감소 그러나, 아래와 같이 '2의 보수법'에 의해 음수를 배치하면 위의 언급한 문제들이 해결된다. 2. 2의 보수법 어떤 수의 'n의 보..

    [JAVA] 실수의 진법 변환 [10진 소수점수를 2진 소수점수로 변환]

    1. 10진 소수점수를 2진 소수점수로 변환 10진 소수점수를 2진 소수점수로 변환하는 방법은 10진 소수점수에 소수점수가 0이 될 때까지 2를 계속 곱한다. 그리고 정수부만 위에서 아래로 순서대로 적고 앞에 '0.'을 붙인다. ex) 0.625[10]를 2진수로 변환 2 * 0.625 = 1.25 2 * 0.25 = 0.5 2 * 1.0 → 0.101 [2] 2. 2진 소수점수를 10진 소수점수로 변환 2진 소수점수를 10진 소수점수로 변환하는 건 '정수의 진법 변환'과 원리가 같다. [JAVA] 정수의 진법 변환[10진수를 n진수로 변환, n진수를 10진수로 변환] 1. 10진수를 n진수로 변환 10진수를 다른 진수로 변환하는 방법은, 변환하려는 진수를 해당 진수로 더 이상 나눌 수 없을 때까지 나누..

    [JAVA] 정수의 진법 변환 [10진수를 n진수로 변환, n진수를 10진수로 변환]

    1. 10진수를 n진수로 변환 10진수를 다른 진수로 변환하는 방법은, 변환하려는 진수를 해당 진수로 더 이상 나눌 수 없을 때까지 나누기를 반복한 다음 마지막 몫과 나머지를 아래부터 위로 순서대로 적으면 된다. 207 [10]을 2진수, 8진수, 16진수로 변환하면 아래와 같다. - 207[10] 2진수로 변환 2 | 207 2 | 103 ... 1 2 | 51 ... 1 2 | 25 ... 1 2 | 12 ... 1 2 | 6 ... 0 2 | 3 ... 0 2 | 1 ... 1 → 110001111 [2] - 207 [10] 8진수로 변환 8 | 207 8 | 25 ... 7 8 | 3 ... 1 → 317 [8] - 207 [10] 16진수로 변환 16 | 207 16 | 12(=C [16]) ...

    [JAVA] '진법'이란?(numeral system) [10진법, 2진법, 비트와 바이트, 8진법, 16진법]

    1. 10진법과 2진법 우리가 일상생활에서 주로 사용하는 것은 10진법이다. ex) 0~9까지의 수 그러나, 컴퓨터는 2진 체계로 설계되었기에 아래와 같이 10진수가 아닌 2진수로 바꾸어 저장한다. int age = 25; // 변수 age에 11001[2](25[10])를 저장 이처럼 2진법은 0과 1로만 데이터를 표현하기에 10진수에 비해 많은 자릿수를 필요로 한다. * 10진수 2와 같이 작은 숫자도 2진수로 표현하려면 2자리가 필요하다. ex) 10 [2] 2. 비트(bit)와 바이트(byte) 한 자리의 2진수를 '비트(bit, Binary digit)'라고 하며, 1비트는 컴퓨터가 값을 저장할 수 있는 최소 단위이다. 그러나, 1비트는 너무 작은 단위이기 때문에 1비트 8개를 묶은 '바이트(b..