달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

   

    

자바의 자료형

어떤 프로그래밍 언어든 "그 언어의 자료형을 알고 이해할 수 있다면 이미 그 언어의 절반을 터득한 것이나 다름없다"는 말이 있습니다.

타입(data type)은 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 역할을 합니다.

 

int와 같이 변수의 특성을 결정짓는 키워드를 가리켜서 자료형이라고 합니다.

int num;

 

 

 

자바 자료형 유형

·       기본 자료형

·       참조 자료형

 

 

유형

설명

기본 자료형

(primitive data type)

·       자바 컴파일러에 의해서 해석되는 자료형

·       실제 을 갖는 자료형

·       자바에서 여러 형태의 타입을 미리 정의하여 제공

참조 자료형

(reference data type)

·       자바 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우

·       값이 아닌 객체의 주소를 가지고 있는 자료형

·       배열, 클래스, 인터페이스

 

 


   

 

기본 자료형의 종류(Primitive Data Type)

자료형

키워드

크기

기본값

표현 범위

논리형

boolean

1byte

false

true 또는 false (0또는 1아님)

문자형

char

2byte

\u0000

0~65,535

정수형

byte

1byte

0

-128~127

정수형

short

2byte

0

-32,768~32,767

정수형

int

4byte

0

-2,147,483,648~2,147,483,647

정수형

long

8byte

0

-9,223,372,036,854,775,808~9,223,372,036,854,775,807

실수형

float

4byte

0.0

-3.4E38~+3.4E38

실수형

double

8byte

0.0

-1.7E308 ~ +1.7E308

 

 



 

Primitive Data size is like the different size of cups.


https://bit.ly/2xLOShq

 


 

자료형 분류

정수 표현

byte, short, int, long

정수를 표현하는데 사용되는 바이트 크기에 따라서 구분

실수 표현

float, double

float는 소수점 이하 6자리

double 12자리 정밀도

문자 표현

char

참과 거짓 표현

boolean

 

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

비트 연산자(bitwise operator)

·       Bit Operator

·       피연산자 연산의 대상이 되는 값들을 내부적으로 bit(비트)단위 변경한 연산을 수행하는 연산자입니다.

·       논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다.

·       0 1 자리에 대한 연산을 수행하며, 0 또는 1 결괏값을 가진다.

·       하드웨어와 관련된 처리를 쉽게 해줍니다.

·       메모리 공간을 줄여서 성능을 높여 있습니다.

 

 

 

'Development > C/C++' 카테고리의 다른 글

C  (0) 2019.05.29
반복문  (0) 2019.05.28
비트 연산자(bitwise operator)  (0) 2019.05.28
비트(Bit)  (0) 2019.05.27
바이트(byte)  (0) 2019.05.27
fread( ) 함수와 fwrite( ) 함수 - 바이너리 파일 입출력  (0) 2019.05.26
Posted by codedragon codedragon

댓글을 달아 주세요


 

형변환

타입의 데이터가 다른 타입으로 변환하는 형변환, 자료형 변환, 타입 변환이라고 합니다.

타입 변환은 크게 자동 타입 변환과 강제 타입 변환으로 구분됩니다.

 

 

 

자료형 변환의 종류

자동 형변환

컴파일러가 자동 형변환 시킵니다

강제 형변환

프로그래머가 강제 형변환 시킵니다

 

 

 

자동 형변환

·       다른 자료형 산술 연산의 경우에 작은 자료형에서 자료형으로 자동 형변환

 

 

정수 + 실수 또는 실수 + 정수와 같은 산술 연산을 하는 경우 자동 형변환

#include <stdio.h>

int main(void)

{

   int       num1=100;        // 정수

   double num2=3.14;        // 실수

   printf("%lf \n", num1+num2);    // 정수 + 실수

   return 0;

}

 

 

자료형 변환 우선순위 (작은 자료형에서 자료형으로…) 자동 형변환

char < int < long < float < double < long double

 



 

대입 연산자를 기준으로 오른쪽에서 왼쪽으로 자동 형변환

#include <stdio.h>

int main(void)

{

   char     num1=130;

   int       num2=3.14;

   double num3=3;

   printf("%d, %d, %lf \n", num1, num2, num3);

   return 0;

}

 

 

Posted by codedragon codedragon

댓글을 달아 주세요

   

   

자바의 자동 형변환 규칙(Implict Conversion)

값의 표현 범위로 자동 형변환됩니다.


   

 

double num = 3.14f + 10;

//10 10F 자동 형변환

 


Posted by codedragon codedragon

댓글을 달아 주세요

자동 형변환 (산술연산)

다른 자료형 간 산술 연산의 경우에 작은 자료형에서 큰 자료형으로 자동 형변환

   

   

소스코드

   

#include <stdio.h>

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;

}


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

양수/음수에서 비트단위 이동 연산 수행

   

   

   

소스코드

   

#include <stdio.h>

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("비트단위 >> 연산 결과: %d \n",result2); //-5

return 0;

}


   

   

출력결과

 

Posted by codedragon codedragon

댓글을 달아 주세요

비트단위 << 연산, 비트단위 >> 연산

   

   

소스코드

int main(void) {

int num1=10;

// 00001010

int result1;

result1 = num1 << 2;

// 0 0 1 0 1 0 0 0

//왼쪽 시프트시 남은 공간은 0으로 채웁니다.

//왼쪽으로 1비트씩 이동할 마다 2 곱해집니다.

printf("비트단위 << 연산 결과: %d \n", result1); //결과 40

return 0;

}


   

 

출력결과


 

Posted by codedragon codedragon

댓글을 달아 주세요

비트연산자

비트 단위 AND 연산, 비트 단위 OR 연산, 비트 단위 XOR 연산, 비트 단위 NOT 연산

 


&연산자 vs 주소연산자

피연산자사이의 &

&연산자

변수앞의 &

주소연산자

   

   

소스코드

   

#include <stdio.h>

int main(void) {

int a=12;

// 128 64 32 16 8 4 2 1

// 0 0 0 0 1 1 0 0

int b=20;

// 128 64 32 16 8 4 2 1

// 0 0 0 1 0 1 0 0

int result1, result2, result3, result4;

result1 = a & b;

// 128 64 32 16 8 4 2 1

// 0 0 0 0 1 1 0 0

// 0 0 0 1 0 1 0 0

//----------------------

// 0 0 0 0 0 1 0 0

printf("a: %d \n", a);

printf("b: %d \n", b);

printf("비트단위 & 연산 결과: %d \n\n",result1); // 결과 4

result2 = a | b;

// 128 64 32 16 8 4 2 1

// 0 0 0 0 1 1 0 0

// 0 0 0 1 0 1 0 0

//----------------------

// 0 0 0 1 1 1 0 0

printf("a: %d \n", a);

printf("b: %d \n", b);

printf("비트단위 | 연산 결과: %d \n\n",result2); // 결과 28

result3 = a ^ b;

// 1 2 결과

// 0 0 0

// 1 0 1

// 0 1 1

// 1 1 0

printf("a: %d \n", a);

printf("b: %d \n", b);

printf("비트단위 ^ 연산 결과: %d \n\n",result3); // 결과 24

//~ 연산자

result4 = ~ a;

// 128 64 32 16 8 4 2 1

// 0 0 0 0 1 1 0 0

// 1 1 1 1 0 0 1 0

printf("a: %d \n", a);

printf("비트단위 ~ 연산 결과: %d \n",result4); // 결과는

return 0;

}


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

2진수, 10진수, 16진수, 8진수

진수

설명

표현법

2진수

0~1까지의 숫자를 사용

컴퓨팅 표현법

10진수

0~9까지의 숫자를 사용

일상적인 표현법

16진수

0~9까지의 숫자를 사용하고, 9 이후부터 a, b, c, d, e, f 문자 사용

컴퓨팅 표현법

8진수

0~7까지의 숫자를 사용

컴퓨팅 표현법

   

   

2진수, 10진수, 16진수, 8진수 데이터 표현 방법

2진수

10진수

16진수

8진수

0000 0000

0

0x0

00

0000 0001

1

0x1

01

0000 0010

2

0x2

02

0000 0011

3

0x3

03

0000 0100

4

0x4

04

0000 0101

5

0x5

05

0000 0110

6

0x6

06

0000 0111

7

0x7

07

0000 1000

8

0x8

010

0000 1001

9

0x9

011

0000 1010

10

0xa

012

0000 1011

11

0xb

013

0000 1100

12

0xc

014

0000 1101

13

0xd

015

0000 1110

14

0xe

016

0000 1111

15

0xf

017

0001 0000

16

0x10

020

0001 0001

17

0x11

021

   

10 == 0xa == 012

17 == 0x11 == 021

   

   

 

2진수를 10진수로 표현하는 방법

   

00001101를 10진수로 변환하기

   

   

   

2진수

10진수

2진수

10진수

2진수

10진수

0000 0000

  

0000 0110

  

0000 1100

  

0000 0001

  

0000 0111

  

0000 1101

  

0000 0010

  

0000 1000

  

0000 1110

  

0000 0011

  

0000 1001

  

0000 1111

  

0000 0100

  

0000 1010

  

0001 0000

  

0000 0101

  

0000 1011

  

0001 0001

  

   

   

2진수를 8진수와 16진수로 표현하는 방법

2진수

00000101 00001101 01010111 01001101

8진수

02505253515

16진수

050d574d

   

   

13을 -13로 변환

양수를 음수로 변환시 1의 보수를 구한 다음 1을 더해주면 음수값이 되고

음수에서 양수로 변환시 1의보수를 구한다음 1을 더해주면 양수값이 나옵니다.

   

Posted by codedragon codedragon

댓글을 달아 주세요

2015. 3. 19. 18:52

비트 (bit) Development/C/C++

   

   

비트

  • 컴퓨터는 모든 정보를 0과 1로 표현
  • 비트(Bit)는 2진수 값 하나(0 또는 1)를 저장할 수 있는 최소 메모리 공간
  • 1바이트(byte)는 8비트(bit)

1bit

2bit

3bit

4bit

5bit

6bit

7bit

8bit

9bit

nbit

21 = 2

22 = 4

23 =8

24 = 16

25 =32

26 = 64

27 = 128

28 = 256

29 = 512

2n =n

   

  

'Development > C/C++' 카테고리의 다른 글

Ex12-비트연산자  (0) 2015.03.23
2진수, 10진수, 16진수, 8진수 데이터 표현방법  (0) 2015.03.21
비트 (bit)  (0) 2015.03.19
Ex11-조건연산자  (0) 2015.03.17
Ex10-논리연산자(&&연산자, || 연산자, ! 연산자)  (0) 2015.03.15
논리연산자  (0) 2015.03.14
Posted by codedragon codedragon

댓글을 달아 주세요