C#

[C#] 데이터 ν˜•μ‹, μž…μΆœλ ₯, μ—°μ‚°μž

쑰밈밍 2022. 9. 6. 16:32

πŸ’‘ μ •μˆ˜ 데이터 ν˜•μ‹

☞ λΆ€ν˜Έ μžˆλŠ” (singned) 숫자

: +,- λΆ€ν˜Έκ°€ μžˆλŠ” μ •μˆ˜ν˜•. 즉, μ–‘μˆ˜μ™€ 음수λ₯Ό λͺ¨λ‘ 지원

 

☞ λΆ€ν˜Έ μ—†λŠ” (unsigned) 숫자

: λΆ€ν˜Έ 없이 +κ°’λ§Œ λ‹€λ£¨λŠ” μ •μˆ˜ν˜•. 즉, μ–‘μˆ˜λ§Œ 지원 

: - 값을 μ‚¬μš©ν•  μˆ˜λŠ” μ—†μ§€λ§Œ, +값을 λΆ€ν˜Έ μžˆλŠ” μ •μˆ˜ν˜•μ˜ 2λ°° 크기둜 μ‚¬μš©ν•  수 μžˆλ‹€.

❗ ν•΄λ‹Ή λ°μ΄ν„°ν˜•μ˜ μ΅œλŒ€κ°’, μ΅œμ†Œκ°’ κ΅¬ν•˜κΈ°

 -  λ°μ΄ν„°ν˜•.MinValue; 

 -  λ°μ΄ν„°ν˜•.MaxValue;

 

πŸ’‘ μ‹€μˆ˜ 데이터 ν˜•μ‹

: double, floatλŠ” λΆ€λ™μ†Œμˆ˜μ  방식, decimal 10μ§„ 방식

 

☞ double (κΈ°λ³Έκ°’)

: μ‹€μˆ˜ 데이터 κ°’ 뒀에 λŒ€λ¬Έμž D or μ†Œλ¬Έμž dλ₯Ό μ§€μ •

ex) double d = 100D;

 

☞ float

: μ‹€μˆ˜ 데이터 κ°’ 뒀에 λŒ€λ¬Έμž F or μ†Œλ¬Έμž fλ₯Ό μ§€μ •

ex) float f = 100F;

 

☞ decimal 

: μ΄μ§„μˆ˜λ‘œ μ²˜λ¦¬λ˜λŠ” double, float와 달리 μ‹­μ§„μˆ˜λ‘œ ν‘œν˜„

: μ‹€μˆ˜ 데이터 κ°’ 뒀에 λŒ€λ¬Έμž M or μ†Œλ¬Έμž mλ₯Ό μ§€μ •

ex) 

 

❗ μ§€μˆ˜ ν‘œκΈ°λ²• : μ‹€μˆ˜E + μ§€μˆ˜

: μ†Œμˆ˜μ  μ•žμ—λŠ” 항상 μˆ«μžκ°€ ν•˜λ‚˜λ§Œ μžˆμ–΄μ•Ό ν•œλ‹€.

ex) -3.4E+40 = -3.4*10의 40승

      3.14E+305 = 3.14*10의 305승

 

πŸ’‘ null κ°€λŠ₯ ν˜•μ‹

: λ°μ΄ν„°ν˜•?(λ¬ΌμŒν‘œ) -> null κ°€λŠ₯ ν˜•μ‹μœΌλ‘œ λ³€κ²½λœλ‹€. => μ•„λ¬΄λŸ° 값도 μ—†μŒμ„ μ˜λ―Έν•˜λŠ” null을 λŒ€μž…ν•œλ‹€.

using System;

namespace Program
{
    class Program
    {
        static void Main(string[] args)
        {
            int? x = null;
            Console.WriteLine(x);
        }
    }
}

 

πŸ’‘ 문자 데이터 ν˜•μ‹ : char

: 2λ°”μ΄νŠΈ(16λΉ„νŠΈ) 곡간에 문자 ν•˜λ‚˜λ₯Ό μ €μž₯

: 단일 λ¬ΈμžλŠ” μž‘μ€λ”°μ˜΄ν‘œ(')둜 λ¬ΆλŠ”λ‹€.

: $"{a}, {b}" ν˜•νƒœλ₯Ό μ‚¬μš©ν•΄ ν•œ λ²ˆμ— 문자 λ˜λŠ” λ¬Έμžμ—΄μ„ λ¬Άμ–΄ 좜λ ₯ν•  수 μžˆλ‹€.

: System.Char

 

πŸ’‘ λ¬Έμžμ—΄ 데이터 ν˜•μ‹ : string

: λ¬Έμžμ—΄μ€ ν°λ”°μ˜΄ν‘œ(")둜 λ¬ΆλŠ”λ‹€.

: λŒ€μž…κ°’ μ•ž, 즉 "큰 λ”°μ˜΄ν‘œ μ•žμ— @λ₯Ό 뢙이면 λ¬Έμžμ—΄ μž‘μ„±ν•œ κ·ΈλŒ€λ‘œ λ¬Έμžμ—΄λ‘œ μ €μž₯ν•œλ‹€.

: System.String

 

❗  λ¬Έμžμ—΄ 보간법

: {0},{1} ν˜•νƒœμ˜ 자리 ν‘œμ‹œμž λŒ€μ‹  직접 λ³€μˆ˜ 값을 μ€‘κ΄„ν˜Έ κΈ°ν˜Έμ•ˆμ— ν‘œν˜„

: ${λ³€μˆ˜λͺ…}

: μ‚¬μš©λ˜λŠ” λ³€μˆ˜μ˜ 값은 λͺ¨λ‘ λ¬Έμžμ—΄λ‘œ μ²˜λ¦¬λœλ‹€. (int, float etc...)

3κ°€μ§€ 방법

 

πŸ’‘  논리 데이터 ν˜•μ‹ : bool

: μ°Έ(true), κ±°μ§“(false) κ°’ μ €μž₯

: 1λΉ„νŠΈμ˜ μ €μž₯곡간

: System.Boolean

 

❗  λ‹·λ„· λ°μ΄ν„°ν˜•μ‹ == 래퍼 ν˜•μ‹ (wrapper type)

: 일반 char, bool, stringλ“± μ‚¬μš©ν•˜λŠ”κ²ƒκ³Ό λ™μΌν•˜λ‹€.

 


 

πŸ’‘ μž…μΆœλ ₯

: Console 클래슀둜 μ‚¬μš©μžκ°€ μ½˜μ†”μ—μ„œ 데이터λ₯Ό μž…λ ₯ν•˜κ³  이λ₯Ό λ‹€μ‹œ μ½˜μ†” 화면에 좜λ ₯ν•  수 μžˆλ‹€.

☞ 좜λ ₯

- Console.Write() : 쀄 띄움X

- Console.WriteLine() : 쀄 띄움

☞ μž…λ ₯

- Console.ReadLine() : ν•œ 쀄 μž…λ ₯λ°›μŒ, enter λˆ„λ₯Ό λ•ŒκΉŒμ§€ λŒ€κΈ°, λ¬Έμžμ—΄λ‘œ μž…λ ₯λ°›λŠ”λ‹€.

- Console.Read() : ν•œ 문자λ₯Ό μ •μˆ˜λ‘œ μž…λ ₯λ°›λŠ”λ‹€

- Console.ReadKey() : λ‹€μŒ λ¬Έμžλ‚˜ μ‚¬μš©μžκ°€ λˆ„λ₯Έ κΈ°λŠ₯ ν‚€λ₯Ό κ°€μ Έμ˜¨λ‹€

 

πŸ’‘ 데이터 ν˜•μ‹ λ³€ν™˜

: Convert.ToInt32() == int.Parse() == Int32.Parse()

: Convert.ToDouble() == double.Parse()

 

❗  κ°’μ˜ λ‹·λ„· 데이터 ν˜•μ‹ μ•Œμ•„λ‚΄κΈ° - GetType()

int num = 32;
Console.WriteLine(num.GetType());	// System.Int32 좜λ ₯

 

❗ μ΄μ§„μˆ˜ 닀루기 - Convert.ToString(숫자, 2)

Convert.ToString(10,2);	// 1010

: 결과값이 0010이라면 μ•žμ— 00은 μƒλž΅λ˜κ³  10만 좜λ ₯λœλ‹€.

-> 00000010을 좜λ ₯ν•˜κΈ° μœ„ν•΄μ„œλŠ” Convert.ToString.PadLeft(8,'0');을 μ‚¬μš©ν•œλ‹€.

: PadLeft( 총 갯수, λΉˆκ³΅κ°„ μ±„μšΈκ°’);

 

❗ μ‹­μ§„μˆ˜ <-> μ΄μ§„μˆ˜

Console.WriteLine($"μ‹­μ§„μˆ˜ 10을 μ΄μ§„μˆ˜λ‘œ λ³€κ²½ : {Convert.ToString(10,2)}");
Console.WriteLine($"μ΄μ§„μˆ˜ 1010을 μ‹­μ§„μˆ˜λ‘œ λ³€κ²½ : {Convert.ToInt32("1010",2)}");

 

πŸ’‘ μ‚°μˆ  μ—°μ‚°μž

❗ + μ—°μ‚°μžλŠ” λ¬Έμžμ—΄κ³Ό λ¬Έμžμ—΄μ„ λ¬ΆλŠ” κΈ°λŠ₯도 ν•œλ‹€.

 

πŸ’‘ ν• λ‹Ή μ—°μ‚°μž == λŒ€μž… μ—°μ‚°μž

: λ³€μˆ˜μ— 데이터λ₯Ό λŒ€μž…ν•˜λŠ”λ° μ‚¬μš©

 

πŸ’‘ 증감 μ—°μ‚°μž

☞  ++ (증가 μ—°μ‚°μž) : λ³€μˆ˜ 값에 1을 λ”ν•œλ‹€.

☞  -- (κ°μ†Œ μ—°μ‚°μž) : λ³€μˆ˜ κ°’μ—μ„œ 1을 λΊ€λ‹€.

 

πŸ’‘ κ΄€κ³„ν˜• μ—°μ‚°μž

: 결과값은 μ°Έ(True) λ˜λŠ” κ±°μ§“(False)둜 좜λ ₯λœλ‹€.

 

πŸ’‘ 논리 μ—°μ‚°μž

: 결과값은 μ°Έ(True) λ˜λŠ” κ±°μ§“(False)둜 좜λ ₯λœλ‹€.

 

πŸ’‘ λΉ„νŠΈ μ—°μ‚°μž

 

πŸ’‘ μ‹œν”„νŠΈ μ—°μ‚°μž

: μ •μˆ˜ 데이터가 담겨 μžˆλŠ” λ©”λͺ¨λ¦¬μ˜ λΉ„νŠΈλ₯Ό μ™Όμͺ½(<<) λ˜λŠ” 였λ₯Έμͺ½(>>)으둜 μ§€μ •ν•œ λΉ„νŠΈλ§ŒνΌ μ΄λ™μ‹œν‚¨λ‹€.

: μ΄λ™ν•œ λ’€ λΉˆκ³΅κ°„μ€ 0으둜 μ±„μ›Œμ§„λ‹€.

: λ‚΄λΆ€μ μœΌλ‘œλŠ” μ΄μ§„μˆ˜λ‘œ κ³„μ‚°λ˜μ§€λ§Œ 좜λ ₯ν• λ•ŒλŠ” μ‹­μ§„μˆ˜λ‘œ ν‘œν˜„λœλ‹€.

 

πŸ’‘ 쑰건 μ—°μ‚°μž  쑰건 ? μ°ΈμΌλ•Œ : κ±°μ§“μΌλ•Œ

: if - else문의 μΆ•μ•½ν˜•

 

πŸ’‘  sizeof μ—°μ‚°μž

: 데이터 ν˜•μ‹ 자체의 크기λ₯Ό κ΅¬ν•œλ‹€.

: sizeof(int) -> 4

 

πŸ’‘ μ—°μ‚°μž μš°μ„ μˆœμœ„