C#은 유니코드 문자를 사용한다. 그렇기 때문에 C#서는 char형이 2바이트다. 1바이트 부호있는 정수 자료형을 사용하
려면 sbyte라는 자료형을 써야 한다.
---------------------------------
sbyte(C# 참조)
업데이트: 2007년 11월
sbyte 키워드는 다음 표에 표시된 크기와 범위에 따라 값을 저장하는 정수 계열 형식을 나타냅니다.
형식 | 범위 | 크기 | .NET Framework 형식 |
---|---|---|---|
sbyte | -128 ~ 127 | 부호 있는 8비트 정수 |
sbyte에서 short, int, long, float, double 또는 decimal로의 미리 정의된 암시적 변환이 있습니다.
저장 크기가 더 큰 비 리터럴 숫자 형식은 암시적으로 sbyte로 변환할 수 없습니다. 정수 계열 형식의 저장 크기에 대해서는 정수 계열 형식 표(C# 참조)를 참조하십시오. 예를 들어 다음과 같은 두 개의 sbyte 변수 x 및 y가 있습니다.
sbyte x = 10, y = 20;
다음 할당문의 경우 할당 연산자의 오른쪽에 있는 산술식이 기본적으로 int로 계산되므로 컴파일 오류가 발생합니다.
sbyte z = x + y; // Error: conversion from int to sbyte
이 문제를 해결하려면 식을 다음의 예제와 같이 캐스팅합니다.
sbyte z = (sbyte)(x + y); // OK: explicit conversion
대상 변수의 저장소 크기가 같거나 더 클 경우에는 다음과 같은 문을 사용할 수 있습니다.
sbyte x = 10, y = 20; int m = x + y; long n = x + y;
또한 부동 소수점 형식에서 sbyte로의 암시적 변환은 없습니다. 예를 들어, 다음 문에서 명시적 캐스트를 사용하지 않으면 컴파일러 오류가 발생합니다.
sbyte x = 3.0; // Error: no implicit conversion from double sbyte y = (sbyte)3.0; // OK: explicit conversion
부동 소수점 형식 및 정수 계열 형식이 함께 사용되는 산술식에 대한 자세한 내용은 float 및 double을 참조하십시오.
암시적 숫자 변환 규칙에 대한 자세한 내용은 암시적 숫자 변환 표(C# 참조)를 참조하십시오.
반응형
'C#' 카테고리의 다른 글
[C#] DataTable.Copy() 와 DataTable.Clone()의 차이 (0) | 2016.09.19 |
---|---|
[C#][MSDN] C# Event 발행자(publisher)와 구독자(subscriber) 방식, 옵저버 패턴에 대해 (0) | 2016.08.21 |
[C#] WeakReference (약한 참조) (0) | 2016.08.21 |
[스크랩][C#] NULL 처리된 객체가 Garbage collector에 의해 수집되지 않는 현상 (0) | 2016.08.21 |
[C#][Unity3D] List<T> Remove 사용 주의사항 (1) | 2013.03.07 |
[C#] Json 파서 구현 시 엑셀 파일 로딩에 대해 (0) | 2013.02.07 |
C# Delegate 그리고 Event (1) | 2013.01.08 |
[스크랩] 무제한으로 매개 변수 사용(C# 및 Java) - params(가변인자) (0) | 2012.12.20 |
[C#] ArrayList 와 List 차이 (0) | 2012.09.27 |
[C#] ArrayList 메모리 구조 (0) | 2012.09.27 |