◎ Java/Java☕
[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..
[JAVA] 문자 리터럴과 문자열 리터럴 [String, 덧셈 연산자를 이용한 문자열 결합]
1. 문자 리터럴과 문자열 리터럴 문자 리터럴 : 작은따옴표로 문자 하나를 감싼 것. ex) 'A', 'B', 'C' 문자열 리터럴(String) : 큰따옴표로 두 문자 이상을 감싼 것. ex) "사랑", "믿음", "소망" char ch = 'J'; // char ch = 'Java'; 이렇게 할 수 없음 String name = "Java"; // 변수 name에 문자열 리터럴 "Java"를 저장 문자열 리터럴은 큰따옴표 안에 아무런 문자도 넣지 않는 것을 허용하며, 이를 '빈 문자열(empty string)'이라고 한다. 그러나 문자 리터럴은 작은따옴표 안에 반드시 하나의 문자가 있어야 한다. String str = " "; // 내용이 없는 빈 문자열 char ch = ''; // 에러. 작은따옴..