본문 바로가기

Programming/Julia Language

2. 변수와 타입(2) - 정수형 리터럴과 부동소수점 리터럴, Bool 타입

Julia Language

 Julia는 수치 연산을 위해 개발된 High Level, High Performance의 동적 프로그래밍 언어이다. 고수준의 컴파일러, 병렬 연산과 많은 수치연산 라이브러리를 지원하고 있다(수치연산, 선형대수, 난수생성, 문자열 가공 등) 비슷한 언어인 Python에 비해 빠른 처리 속도를 보여주어 머신 러닝 등 많은 연산을 필요로 하는 분야에서 사용되고 있다.

Previous Posting

1. 변수와 타입(1)- 변수, 타입


1. 정수형 리터럴

- Numeric PrimitivesNumeric Literal

Numeric Primitives는 Numeric Literal(1, 2, 3 등)을 메모리에서 이진수로 표현하는 객체이며,

Numeric Literal은 코드 상에서 즉각적으로(Instantly) 표현되는 값이다


정수형 타입

Int8

8bit

-2^4 ~ 2^4 -1

UInt8

8bit

0 ~ 2^8-1

Int16

8bit

-2^8 ~ 2^8 -1 

UInt16 

8bit 

0 ~ 2^16 -1 

Int32 

8bit 

-2^16 ~ 2^16 -1 

UInt32

8bit 

0 ~ 2^32 - 1 

Int64 

8bit 

-2^32 ~ 2^32 -1 

UInt64 

8bit 

0 ~ 2^64 -1 

Int128 

8bit 

-2^64 ~ 2^64 -1 

UInt128

8bit 

0 ~ 2^128 -1 

Int 타입은 부호가 있고, UInt 타입은 부호가 없다(Unsigned)


정수형 리터럴의 타입은 해당 시스템의 아키텍쳐에 의해 결정된다

i = 33

print(typeof(i), "\n")  #Int64(64bit OS에서)

# 정수형 리터럴의 타입은 시스템 아키텍쳐에 따라 결정된다


i = 2^44

print(typeof(i), "\n")  #Int64

#- 시스템 아키텍쳐가 32bit여도 리터럴이 그 범위를-#

#-넘어가면 타입은 Int64 이상으로 고정된다-#


Unsigned Int 타입의 리터럴은 수 앞에 0x 를 붙여 표현한다

print(typeof(0x32))  # UInt64


16진수0x와 0~9, a~f(A~F)를 이용하여 표현한다(2진수는 0b, 8진수는 0o)

print(typeof(0x9f))  # UInt8

# 16진수는 0x와 0~9, A~F(a~f)를 이용하여 표현한다


값이 Type이 표현할 수 있는 최대치를 넘어서면 값이 범위의 최소값으로 변하는 Overflow현상을 보인다

print(typemax(Int64)+1 == typemin(Int64), "\n")  # True

# Overflow



2. 부동소수점 리터럴

- 소수점 표기법 vs 지수 표기법

1) 소수점 표기법 : 4.32 와 같이 소수점을 이용해 표기

2) 지수 표기법 : 5.1e-3과 같이 10의 지수를 이용해 표현

flo = 4.31

floo = 5.1e-3

print(typeof(flo), "\n")

print(typeof(floo), "\n")

# 부동소수점 리터럴은 지수 표기법과 소수점을 이용하여 나타낼 수 있다


- 반올림은 setroundstring(Type, 모드)를 이용한다(모드 : RoundNearest : 반올림, RoundUp : 올림, RoundDown : 내림)
setrounding(Float64, RoundNearest) do
  print(flo+floo)
end
# 반올림


3. Bool 타입

- Bool(불리언) 타입은 Int형의 하위타입이며, 논리학자 조지 불의 이름에서 따온 이름이다.


- 불리언 타입은 참과 거짓을 나타낼 때 사용된다

Bool(0)  # false

Bool(1)  # true


- 논리 연산자

1) a==b a가 b이면 true를 반환

2) a&&b a가 참이면 b를 평가

3) a||b a가 거짓이면 b를 평가

4) a⊻b 둘 중 하나만 true이면 true를 반환(a가 참이면 b를 평가해 not b를 반환, a가 거짓이면 b를 평가한다)

Next Post


03. 변수와 타입(3) - Char 리터럴, 문자열 리터럴


Code

본 포스팅에서 사용된 Julia 코드는 이 시리즈의 Github 저장소에서 다운받을 수 있습니다