본문 바로가기

반응형

전체 글

(37)
4-3 비트와 관련이 있는 연산자 비트 단위로 연산을 진행하는 연산자들도 있습니다. 연산자 연산자의 기능 결합방향 & 비트단위로 AND 연산을 한다.ex) n1 & n2; -> | 비트단위로 OR 연산을 한다.ex) n1 | n2; -> ^ 비트단위로 XOR 연산을 한다.ex) n1 ^ n2; -> ~ 피연산자의 모든 비트를 반전시켜서 얻은 결과를 반환ex) ~n; > 2; -> >>> *피연산자의 비트 열을 오른쪽으로 이동.*이동에 따른 빈 공간은 0으로 채움.*ex) n >>> 2; -> 왼쪽으로 Shift 연산을 수행하면 2의 배수의 곱이 됩니다. 오른쪽으로 Shift 연산을 수행하면 2의 배수의 나눗셈이 됩니다.
4-2 자바에서 제공하는 단항 연산자들 +, -는 이항 연산자로써 덧셈과 뺄셈의 기능을 제공합니다. 하지만 우리가 수학시간에 많이 사용했듯, 부호연산자로써 음수와 양수를 표현하는데 사용되기도 합니다. public class UnaryAddMin { public static void main(String[] args) {// TODO Auto-generated method stubint n1 = 5;System.out.println(+n1);System.out.println(-n1);short n2 = 7;int n3 = +n2;int n4 = -n2;System.out.println(n3);System.out.println(n4);} } 5-57-7 -는 음수를 표현해주고, +는 굳이 없어도 양수로 표현을 해줍니다. 증가, 감소 연산자라는게 ..
4-1 자바에서 제공하는 이항 연산자들 이항 연산자란 피연산자가 둘인 연산자를 의미합니다. 위 사진을 보면 결합방향이라는 것이 있는데, 우리한테 익숙한 "=" 연산자를 보면 결합방향이 왼쪽으로 표시가 되어있습니다. 우리가 수학 배울때 =은 같다의 의미를 가져서 오른쪽이 맞는거 아닌가 할 수도 있겠지만..(사실 제가 처음에 C 를 통해 코딩을 접했을때 그렇게 생각했었습니다) 프로그래밍 언어에서 같다는 "==" 입니다. =은 오른쪽의 값을 왼쪽에 대입 한다는 개념이라 결합방향이 왼쪽이 됩니다. 대입연산자와 산술연산자를 보겠습니다. 연산자 연산자의 기능 결합방향 = 연산자 오른쪽에 있는 값을 연산자 왼쪽에 있는 변수에 대입한다. ex) val = 22; - 왼쪽의 피연산자 값에서 오른쪽의 피연산자 값을 뺀다. ex) val =2 - 2; -> * ..
3-2 자료형의 변환 short형 변수 num1과 num2 가 있고 각각 10, 20으로 초기화 했다고 쳐봅시다. 이 두 변수를 덧셈연산할때, int형 데이터로 변환된 다음에 연산이 이루어지게 됩니다. short형으로 선언했을때는 각각 00000000 0000101000000000 00010100 으로 저장되어있는데, 덧셈 연산이 진행되면, int형으로 바뀌면서 00000000 00000000 00000000 0000101000000000 00000000 00000000 00010100 으로 2바이트에서 4바이트로 변환되며 0으로 채워지게 됩니다. 즉, 형 변환은 값의 표현 방식을 바꾸는 것이라고 할 수 있습니다. 수학공부할때 연산을 정수끼리, 실수끼리 연산만 하지 않듯이 실수와 정수끼리 연산을 하게 될 경우엔 표현법을 하나..
3-1 상수 상수를 표현하는 방법은 int num=1+2; System.out.println(1.2+3.4); 이렇게 사용해서 표현할 수 있습니다. 여기서 상수는 총 네번, 1,2,1.2,3.4 가 쓰였습니다. 상수도 또한 변수처럼 메모리 공간에 저장이 됩니다. 대신 저장된 값의 변경이 불가능합니다. 상수의 특징은 #이름이 없다.#이름이 없으므로 메모리에 저장된 상수의 값을 변경시킬 수 없다. 이렇게 알 수 있습니다. 상수는 선언된 값에 맞는 가장 작은 자료형(short, byte 등)에 맞춰서 저장되지 않을까도 생각이 들수도 있습니다만... 기본적으로 모든 정수형 상수는 int, 실수형 상수는 double형으로 표현, 저장됩니다. 그럼 10000000000 등 int의 범위값에 넘어가거나 12.34처럼 float형..
2-4 자료형의 이해 앞서 byte, short, int, long 등의 자료형에 대해 알게 되었습니다.int형은 4바이트의 공간을 갖고, short는 2바이트, long은 8바이트의 공간을 갖는다고 했습니다.저는 프로그래밍에 대해서 배울때, "모든걸 큰 자료형으로 선언하면 귀찮은것도 없고 편하지 않나? 왜 굳이 int를 쓰고 하지?" 했었습니다. 지금도 하고있지만요.옛날에는 아주 작고, 한정적인 메모리 공간만을 가지고 프로그램을 만들어야 했으니 자료형의 선택이 매우 중요했지만지금은 거의 8GB 이상의 메모리가 기본이 되다시피 컴퓨터를 사용하고 있습니다.메모리 공간만을 생각해보면 그렇지만, 우리가 일반적으로 사용하는 CPU는  int형 연산을 가장 빠르게 처리할 수 있게 설계 되어있습니다.그렇기 때문에 보통 int로 선언해서..
2-3 실수 표현방식의 이해 2-2에서는 정수 표현 방법에 대해서 봤습니다. 이번엔 실수 표현방식을 볼건데요. 1과 2, 1과 3 등등 정수와 정수 사이에는 1.1, 1.2, 1.11, 1.1111111.. 등등 무한히 많은 실수가 존재합니다. 따라서 이러한 소수점 이하 자리수까지 표현 하기엔 한계가 생기죠. 그래서 실수를 표현하는 방법은 정밀도를 포기하고 표현의 범위를 넓히는 방법으로 정했습니다. 여기선 굉장히 복잡한 수식이 나오는데, 생략하겠습니다. 이전 글에서 실수끼리 연산했을때 3.0000002가 나올거라 예상했으나 3.0000001999999997 라는 숫자가 나왔던 것에 대한 답이 이것입니다. 표현의 범위가 넓어진 대신 정밀도가 낮기 때문에 이러한 결과가 발생하게 됩니다.
2-2 정수 표현방식의 이해 컴퓨터는 2진수를 사용합니다. 2진수는 0과 1로만 표현하는 방법이죠. 양의 정수를 표현하는 방식은 00011001 이라는 숫자를 보면0

반응형