~5 비트연산 결과는?
관련링크
본문
~5 비트연산 결과는, -6인가요? 10인가요?
제 생각엔 아래 과정 거쳐서 10 나올 것 같은데,
~ 5 → ~0101 → 1010 → 10
연산해보니까 -6으로 나오더라구요.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(~ 5); // -6
}
}
}
답변 1
기본 자료형부터 체크하셔야 할것 같네요.
int, int32, int64 중에서
int 의 경우 os 시스템마다 다르게 할당될수 있습니다.
항상 현재 자료형이 뭔지를 확인하셔야 하구요.
signed 와 unsigned 일 경우도 잘 체크하셔야 합니다.
signed 의 경우 첫비트를 부호 연산자를 쓰기 때문에 언더플로우 오버플로우에 대해서도 신경쓰셔야 합니다.
(예전 c처음 배울때 배운거라서 정확한지는 잘 모르겠네요.. PHP에서는 비트 연산을 쓸 일이 거의 없어서.)
답변을 작성하시기 전에 로그인 해주세요.