18.July.2023

정제로·2023년 7월 22일
0

C#

목록 보기
1/30

연산자들의 우선순위


출처 : 연산자 우선순위


소수를 이진법으로 나타내는 법

유한 이진법으로 표현되는 소수 : ex) 17.625

  1. 정수부 17을 이진법으로 나타낸다 → 10001
  2. 소수부만 가져온다 → 0.625
  3. 소수부가 1로 떨어지거나 똑같은 소수점이 나올때까지 반복한다

    0.625 * 2 = 1.250
    0.250 * 2 = 0.500
    0.500 * 2 = 1.000

  4. 위에서부터 정수부를 차례대로 가져온다 → 101 (※ 참고! 10진수를 2진수로 만드는법)
  5. 정수부와 소수부를 합친다 → 10001.101

무한소수 이진법으로 표현되는 소수 : ex) 1.1

  1. 정수부 1을 이진법으로 나타낸다 → 1

  2. 소수부만 가져온다 → 0.1

  3. 소수부가 1로 떨어지거나 똑같은 소수점이 나올때까지 반복한다

    0.1 * 2 = 0.2
    0.2 * 2 = 0.4
    0.4 * 2 = 0.8
    0.8 * 2 = 1.6
    0.6 * 2 = 1.2
    0.2 * 2 = 0.4
    0.4 * 2 = 0.8
    0.8 * 2 = 1.6
    0.6 * 2 = 1.2
    ............ 무한반복

  4. 위에서부터 차례대로 가져온다 → 0'001100110011…'

  5. 정수부와 소수부를 합친다 → 1.0001100110011…

  6. X.1의 소수는 완벽히 0.1로 표현할 수 없다

  7. 이 말은 즉슨, 오차가 발생하므로,

    반올림 처리를 하던지, 더 자세한 소수점 까지 나타내주는 decimal 혹은 double을 이용하자


Convert / Parse / TryParse 차이

Convert

  1. 영어 그대로 "변환" 이라는 의미
string strA = "10";
string strB = "12.345";
string strC = null;

int ConvertStrA = Convert.ToInt32(strA);	// 10
int ConvertStrB = Convert.ToInt32(strB);	// FormatException
int ConvertStrC = Convert.ToInt32(strC);	// 0으로 반환됨

Parse

  1. 영어 그대로 "구문분석,품사*문법적 관계를 설명하다" 의 의미
  2. 문자열이 Null일때 자료형을 변환하면 ArgumentNullException예외처리를 해줌
string strA = "10";
string strB = "12.345";
string strC = null;

int ParseStrA = Int32.Parse(strA);	// 10
int ParseStrB = Int32.Parse(strB);	// FormatException
int ParseStrC = Int32.Parse(strC);	// ArgumentNullException

TryParse

  1. Parse와 비슷하지만, 반환값은 반환을 성공여부를 반환한다. → true/false
  2. 사용법도 Parse와 비슷하다
  3. 밑에처럼 반환받고자 하는 값을
  4. ※참고로 해보니 소수문자열 → int로하면 false가 됨
  5. tryparse는 전체적으로 bool값을 반환한다
    a. 안에있는 “out 변수” 는 변수에 결과값을 저장한다 는 의미
string strA = "10";

int i; // 반환받고자 하는 자료형의 변수선언

int.TryParse(strA, out i); // x : 10 & true
// 자료형.TryParse(문자열의 변수명, out 반환받고자 하는 자료형의 변수선언);
// out i의 의미는 결과값을 i변수에 저장하여라 라는 의미
// 변환이 성공하면 32비트 부호있는 정수값이 저장되고, 실패하면 0 저장
// 따라서, 제대로 받아졌는지 확인하기 위해선 bool값이 필요하다
string strA = "10";
string strB = "12.345";
string strC = null;

int i;
Int32.TryParse(strA, out i);	// true -> result = 10
Int32.TryParse(strB, out i);	// false -> result = 0
Int32.TryParse(strC, out i);	// false -> result = 0
profile
초보자입니다.. 잘못된 정보, 달게 받겠습니다..

0개의 댓글

관련 채용 정보