컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post 그래픽 파일의 종류/그림,사진 파일의 확장자 종류: Graphics File Format ...도스/도스창(cmd.exe)용 실행파일/명령어 만드는, 언어/프로그램은? Creating ...펄.Perl] 배열 출력, 배열을 문자열로 변환, Print Array, Array to ...펄/Perl] 여러 개의 빈줄 삭제, 하나의 빈줄로 합치기, Collapse Multipl...펄/Perl] 숫자 배열 정렬(소팅), sort 함수 사용법: Sort Number Arr...펄/Perl] 문자열 배열 정렬(소팅), sort 함수 사용법: Sort String Ar...구글어스 좌표 구하기: 위도(Latitude), 경도(Longitude) - Google ...자바,Java] 텍스트 파일 읽기, 한줄씩 읽어 화면에 출력; 자바 기초구글, 지정한 사이트만 검색, 특정 디렉토리(폴더)만 검색, Site Search Goog...반복되는 명령 실행: 윈도우 도스창 / 리눅스 - Repeat Commands

C언어/자바,Java] char를 int로 변환; char to float, long, 자료형 타입 캐스팅

Saturday, October 21, 2006

어떤 자료형을 다른 자료형으로 변환하기 위해서는, 캐스트 연산자로 타입 캐스팅을 하면 됩니다.

변환하고 싶은 자료형을 (int) 이렇게 소괄호 속에 기입해서, 변환 대상 앞에 붙이면 됩니다.

C언어는 물론이고, 자바에서도 마찬가지입니다. 다만 자바에는 unsigned 형이 없습니다.


그런데 캐스팅 자체는 쉽지만, 큰 자료형을 작은 자료형으로 변환할 때에는 문제가 있습니다. 예를 들어,

unsigned char 는 최대 255 까지 저장할 수 있기에, 255가 넘는 int / unsigned int / long 등을 캐스팅하여 억지로 대입하면, 값이 리셋되어 0부터 다시 시작하게 되어 버립니다. 즉 캐스팅이 되지 않습니다. 그렇다고 해서 에러가 나는 것도 아니기에 버그의 원인이 될 가능성이 높습니다.



타입 캐스팅 (자료형 변환) 예제 소스


파일명: 0.cpp
#include <stdio.h>

int main(void) {

  unsigned char uc = 'A'; // A 의 아스키 코드는 10진수로 65
  char           c = 'B'; // B 의 아스키 코드는 10진수로 66
  printf("%d %d\n", (int) uc, (int) c); // char 를 int 로 변환 출력
  // 결과: 65 66



  int           i = 48152;
  unsigned int ui = (unsigned int) i; // int 를 unsigned int 로 변환
  printf("%u\n", ui);
  // 결과: 48152



  char         c2  = 'A';
  float         f  = (float) c2; // char 를 float 로 변환
  printf("%f\n", f);
  // 결과: 65.000000



  // 잘못된 결과
  unsigned int  ix =  256;
  unsigned char cx = (unsigned char) ix; // 문제 발생
  printf("%d\n", cx);
  // 결과: 0



  return 0;
}



각 자료형의 한계값이 여기에 있습니다: ▶▶ [C언어] 정수 실수 종류(데이터형) / 최소값 최대값 - char int float - Data Type Ranges

▶▶ 자바.Java] 정수 실수 종류(데이터형;자료형), 최소값/최대값: int, long, float, double

☞ C/C++

☞ 자바(Java)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top