
<aside> 💡 목차
</aside>
https://github.com/POCU/COMP1500CodeSamples
묵시적 변환 : 암묵적인 규칙을 의미함
<aside> 💡 컴파일러가 기본 자료형 간의 변환을 알아서 해주는것
int num1 = 10;
long num2 = num1;
</aside>
<aside> 💡 데이터 손실 예시 코드 🔥
using System;
namespace PrimitiveTypesToBinary
{
class Program
{
static void Main(string[] args)
{
int num1 = 1234567890;
float num2 = num1;
Console.WriteLine(num1 - (int)num2);
}
}
}

이게 만약 돈이라면, 1234567890 달러가 예금된 은행에서 float으로 형변환을 해버리면 46달러의 차이가 생겨버리겠지?
이런 이유로 int 로 표현 가능하다면 int로 표현하라! int로 표현하면 정밀도가 확실하게 보장되기 때문이다
‣ 다음 글에서 확인할 수 있듯이, 나눠지지 않는 값을 표현할때도 정밀도 손실에 의해 완전히 정확한 값이 나오진 않는다
</aside>
<aside> 💡 그냥 int + float 하면 프로그램에서 float으로 자동으로 변환해주는것
double num1 = 3.7;
int num2 = 10;
Console.WriteLine(num1 + num2)
int num3 = 3;
int num4 = 2;
Console.WriteLine(num3 / num4);
int num3 = 3;
**float num4 = 2.0f;**
Console.WriteLine(num3 / num4);
</aside>
<aside> 💡 32비트에서 64비트로 변환하는것은 문제 없다.
7FFF FFFF 를
0000 0000 7FFF FFFF 로
최상위 비트에 0을 붙이기만 하면 되는거니까!

</aside>
<aside> 💡 64비트에서 32비트로 변환하는것은 문제가 있다!
0000 0001 FFFF FFFF 를
기존값이 32비트로 들어가기엔 값이 너무 커서 에러가 발생함!
또한, 작은형으로 변환되며 기존의 최상단 비트는 소멸되어 정보의 손실이 발생함

</aside>