강제 형변환(24)
-
형변환으로 인한 데이터 손실, 강제 형변환
형변환으로 인한 데이터 손실 데이터 손실이 없는 경우 int형 (작은 자료형) 에서 double형(큰 자료형)으로 변환되는 경우 정수와 정수를 나누는 경우 데이터 손실이 있는 경우 double형 (큰 자료형) 에서 int형(작은 자료형)으로 변환되는 경우 자동형변환으로 인한 데이터 손실을 최소화 하기 위해 강제 형변환 수행 강제 형변환 큰 자료형에서 작은 자료형으로 변환시 사용 프로그래머가 강제로 형변환을 해줍니다. 이미 정의된 자료형을 강제적으로 다른 자료형으로 변환하는 것 괄호 연산자 ( )를 사용하여 바꿀 자료형 표시 int num=10 (double)num; //(바꿀 자료형)변수
-
비트 연산자(bitwise operator)
비트 연산자(bitwise operator)· ≒ Bit Operator· 피연산자 즉 연산의 대상이 되는 값들을 내부적으로 bit(비트)단위로 변경한 후 연산을 수행하는 연산자입니다.· 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다.· 0과 1의 각 자리에 대한 연산을 수행하며, 0 또는 1의 결괏값을 가진다.· 하드웨어와 관련된 처리를 쉽게 해줍니다.· 메모리 공간을 줄여서 성능을 높여 줄 수 있습니다.
-
자료형 변환, 자동형 변환
형변환한 타입의 데이터가 다른 타입으로 변환하는 것을 형변환, 자료형 변환, 타입 변환이라고 합니다.타입 변환은 크게 자동 타입 변환과 강제 타입 변환으로 구분됩니다. 자료형 변환의 종류
-
Ex-강제 형변환 필요성
강제 형변환 필요성 정수를 정수 나눌 경우 데이터 손실이 발생 소스코드 #include int main(void) { int num1=10; //정수 int num2=3; //정수 double result; //실수 //정수형/정수형 -> 자동형변환에 의해 연산결과인 3.333 값에서 정수값만 result에 저장됩니다. result=num1/num2; //3 = 10/3 (3.333....) printf("결과1 : %lf \n", result); //데이터 손실 발생 result=(double)num1/num2; //강제 형변환, 실수형/정수형 printf("결과2 : %lf \n", result); result=num1/(double)num2; //강제 형변환, 정수형/실수형 printf("결과3 :..
-
자동 형변환 (산술연산)
자동 형변환 (산술연산) 다른 자료형 간 산술 연산의 경우에 작은 자료형에서 큰 자료형으로 자동 형변환 소스코드 #include int main(void) { int num1=100; // 정수 double num2=3.14; // 실수 //작은 자료형에서 큰 자료형으로 자동 형변환 printf("%lf \n", num1+num2); // 정수 + 실수 printf("%lf \n", num1/num2); // 정수 + 실수 //2째자리까지 출력 printf("%.2lf \n", num1+num2); // 정수 + 실수 return 0; } 출력결과
-
Ex14-양수/음수에서 비트단위 이동 연산 수행
양수/음수에서 비트단위 이동 연산 수행 소스코드 #include int main(void) { int num1=10; //00001010 int num2=-10; //11110101 (1의보수) //11110110 (1 더함) //-10 int result1; int result2; result1 = num1 >> 1; //00000101 //양수인경우 0으로 채움 result2 = num2 >> 1; //11111011 //-5 //음수인경우 1로 채움 //오른쪽으로 1비트씩 이동할 때 마다 2씩 나누어집니다. //11111011 //-5 //00000100 (1의보수) //00000101 (1 더함) //5 printf("비트단위 >> 연산 결과: %d \n",result1); //5 printf("..