C++ Prime by Prata Ch. 3 Dealing with Data

C++ 의 내장 정수형 : unsigned long, long, unsigned int, int, unsigned short,  short, char, unsigned char, signed char, bool

Climits 파일

const

float, double, long double

cfloat 파일

자동 / 강제  데이터 형 변환

Simple Variables

Bit, Byte

Byte : 8 bit , 16 / 32 bit..

대부분 C++ : short > 16 bit, long > 32 bit.. int > 16, 24, 32 bit..

climits / limits.h 파일 참조.  정수의 한계 정의.

#include <climits>
int maxInt = INT_MAX;
short maxSht = SHRT_MAX;// LONG_MAX,
CHAR_BIT 비트수

Initialization with C++11

int ham  = { 24 }; // ham = 24
int ham {24 }; // same..
int ham = {} ; // set to 0

대안이 왜 필요한가? :: 초보자를 위해서.  {} 은 모든 타입에서 사용 가능.

Unsigned type

한계를 넘어서면 다른 끝으로 감. odometer..

Intiger Literal : 숫자 데이터

명시적으로 쓰는 212, 348 등.
345 : 10진수
012 : 8진수
0x, 0X : 16..

cout << hex; // 다음 출력은 hex 로 전환..
cout << oct; // change output base

How C++ Decides What Type a Constant Is

일반 숫자를 어떤 자료형으로 저장하는가.
> 접미어..  L, UL .. 에 따른다.  LU, UL..  C++11 : LL ll ULL ull  Ull ..
> 너무 크면 다른 형으로..

The char Type: Characters and Small Integers

char :: M, m, 3, …
cin, cout 에서 변환시켜줌..  숫자 -> 캐릭.

cout.put(single char);

A Member Function: cout.put()

OOP .. : dot > membership operator ..

char Literals

‘k’ : ‘ + k + ‘  …
EBCDIC 에서는 65가 A 가 아님.
C++ 의 escape sequence  :: \a > alert,  \n : new line, \” : ‘ ” ‘
cout << endl << ‘\n’ << “\n”    // 모두 new line 기능.
/b : backspace 를 이용하여 ______ 위에 인풋하며 _ 을 지우는 것도 가능..

<br />cout &lt;&lt; "Enter your agent code:________\b\b\b\b\b\b\b\b";<br />long code;<br /> cin &gt;&gt; code;<br />

Universal Character Names

독일어, 불어 등.. \u : 8 hexa , \U : 16 hexa  ISO 10646
\u00F6   ..umlaut o,   \u00E2 ..

signed char & unsigned char

기본이 signed ..는 아님.  unsigned 가 디폴트도 아님.  명시할 필요가 있으면 할 것.

For When You Need More : wchar_t

wide char type.

<br />wchar_t bob = L'P';<br />wcout &lt;&lt; L"tall" &lt;&lt; endl;<br />

New C++11 Types: char16_t & char32_t

char16_t : unsigned 16 bit
char32_t : unsigned 32 bit

<br />char16_t myCh1 = u'q';   // basic character in 16-bit form<br />char32_t = myCh2 = U'\U0000222B';    // universial character name in 32-bit form<br />

The bool Type

true ; 1, false ; 0

The const Qualifier

‘const’ :: qualifier .. 선언의 의미에 대한 자격을 주기 때문.

대문자로 시작. 혹은 모두 대문자로.  k로 시작.

<br />const int kTheValue = 234;  // const type name = value ; 형식..<br />

define 보다 좋은 점 :: 형을 명시할 수 있다. C++ scoping 적용 가능. 어레이 같은 구조에 적용 가능.
Ansi C 에도 있지만 C++와는 약간 상이함.
특히, 어레이의 크기에 const 값 사용 가능.

Floating-Point Numbers

fractional.. 지수로 실수 표현.

Writing Floating-Point Numbers

3.14

3.14E5  (3.14 is mantissa,  5 is exponent)

Floating-Point Types

3 Types :: float (32 bits), double (64 bits), long double (80, 96 or 128 bits)
Significant figures 숫자, 지수 (-37 ~ 37).

Program Notes

3 Types :: float (32 bits), d

Floating-Point Constants

f / F : float
l / L : long double
3.24 / 3.4E8 : double

Advantages and Disadvantages of Floating-Point Numbers

계산이 정확치 않음.

C++ Arithmetic Operators

5개의 연산

Order of operation

* / % 는 같은 등급.

Division Diversions

..

The Modulus Operator

%

Type Conversions

C++ 자동 처리 변환.

# 특정 타잎의 변수에 다른 타잎의 값을 넣을 때.
# 식에서 여러 타잎을 섞을 때.
# 함수에 인자로 넘길 때.

Conversion on Initialization and Assignment

long 에 shot 할당 시 문제 없음.
긴 long 을 float 로 할 때 정확도 잘려나감.. (유효숫자 6개로)

표 3.3 Potential Numeric Conversion Problems

long => short : 아래 바이트들이 카피됨.
0 = true, non zero = false

Inializan Conversions When { } Are Used (C++11)

{ } 를 이용한 list-initialization .. :: narrowing 을 허용 안함. (값이 유실될 때)
즉. float -> integer 허용 안됨.

const int code = 66;
int x = 66;
char c1 {31325}; // narrowing, 불가.
char c2 = {66};  // OK.
char c3 = {code};
char c4 = {x};  // 불가. 상수가 아니라. // 컴파일러에게는 더 큰 수일 수 있음.

Conversions in Expressions

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중