• 버전 확인

     # 버전 확인
     versioninfo()
    
     # 패키지 확인
     using Pkg
     Pkg.activate("../..")
     Pkg.status()
    



Units of computer storage

  사람과 컴퓨터가 숫자를 사용하는 방식에는 차이가 있다. 간단하게 말하면 사람은 10진수를, 컴퓨터는 2진수를 사용한다. 왜 그럴까?
  사람과 컴퓨터의 물리적 차이에 그 이유가 있다. 사람은 손가락이 10개기 때문에 10진수가 사용하기 가장 편했을 것이고, 컴퓨터는 전기가 On이냐 Off냐 두 경우에 따라 표현을 하기에 2진수가 가장 편했을 것이다.

컴퓨터 저장단위의 예시

  • Bit = binary digit
  • byte = 8 bits
  • KB = $10^3$ bytes
  • MB = $10^6$ bytes
  • GB = $10^9$ bytes


코드에서 사용하는 변수가 차지하는 메모리의 양을 알아보자.

x = rand(100, 100)
Base.summarysize(x) # x가 쓰는 메모리의 양 / 80040


varinfo() : 사용하고 있는 변수의 메모리 크기와 종류에 대해 볼 수 있다.

varinfo() 
name	size	summary
Base		Module
Core		Module
Main		Module
x	78.164 KiB	100×100 Matrix{Float64}



Storage of Characters

Character 타입이 저장되는 방법을 알아보자.

ASCII


  • ASCII

    American Standard Code for Information Interchange : 7 bits, only $2^7$=127개 characters.

      # integers 0, 1, ..., 127 and corresponding ascii character
      [0:127 Char.(0:127)]
    
      128×2 Matrix{Any}:
      0  '\0'
      1  '\x01'
      2  '\x02'
      3  '\x03'
      4  '\x04'
      5  '\x05'
      6  '\x06'
      7  '\a'
      8  '\b'
      9  '\t'
      10  '\n'
      11  '\v'
      12  '\f'
      ⋮  
      116  't'
      117  'u'
      118  'v'
      119  'w'
      120  'x'
      121  'y'
      122  'z'
      123  '{'
      124  '|'
      125  '}'
      126  '~'
      127  '\x7f'
    


  • Extended ASCII: 8bits, $2^8$=256

    ASCII 코드에 128개가 추가된 것

      # integers 128, 129, ..., 255 and corresponding extended ascii character
      # show(STDOUT, "text/plain", [128:255 Char.(128:255)])
      [128:255 Char.(128:255)]
    
      128×2 Matrix{Any}:
      128  '\u80'
      129  '\u81'
      130  '\u82'
      131  '\u83'
      132  '\u84'
      133  '\u85'
      134  '\u86'
      135  '\u87'
      136  '\u88'
      137  '\u89'
      138  '\u8a'
      139  '\u8b'
      140  '\u8c'
      ⋮  
      244  'ô'
      245  'õ'
      246  'ö'
      247  '÷'
      248  'ø'
      249  'ù'
      250  'ú'
      251  'û'
      252  'ü'
      253  'ý'
      254  'þ'
      255  'ÿ'
    


  • Unicode

    UTF-8, UTF-16, UTF-32 가 있고, 그중 UTF-8이 가장 널리 쓰이고 있다. Julia는 모든 UTF-8 characters을 제공하므로 수식또한 자유롭게 쓸 수 있다. \LaTex_symbol형식으로 사용가능.

      # \beta-<tab>
      β = 0.0
      # \beta-<tab>-\hat-<tab>
      β̂ = 0.0
    

    Unicode 참조링크 : https://docs.julialang.org/en/v1.1/manual/unicode-input/#Unicode-Input-1



Integers : fixed-point number system(고정 소수점)

  정수($\mathbb{Z}$)는 무수히 많은 수를 포함하고 있지만, 컴퓨터의 메모리는 그렇지 않다. 따라서 컴퓨터는 수를 저장할 때 근사를 이용하여 최대한 많은 수를 저장한다.

  상수 M은 비트 수를 뜻하고, 부호를 나타내는 방식에는 여러가지가 있다. 예를 들어, M=64 라면, 최대로 처리할 수 있는 비트 수가 $2^{64}$개인 것이다.

태그:

카테고리:

업데이트: