c에서 int 및 short의 동작

프라 티크 바사

다음 코드가 출력되는 이유를 알고 싶습니다.

unsigned short a=10,aa=-1;
if(a>-1)
  printf("surprise");
else 
  printf(" No surprise");

이것은 출력 "Surprise"를 제공합니다.

 unsigned int a=10,aa=-1;
    if(a>-1)
      printf("surprise");
    else 
      printf("No surprise");

이것은 "No Surprise"출력을 제공합니다.

unsigned short a=10,aa=-1;
if(a>aa)
   printf("surprise");
else 
  printf("No surprise");

이것은 "No Surprise"출력을 제공합니다.

Willus

이 Stack Exchange 질문을 참조하십시오.

unsigned int 및 signed int가있는 C 표현식에서 어떤 유형이 어떤 유형으로 승격됩니까?

AProgrammer의 응답에 전체 규칙이 나열됩니다. 첫 번째 경우에는 네 번째 규칙이 적용됩니다 (-1은 부호있는 정수이며 부호없는 short의 모든 값을 나타낼 수 있으므로 부호없는 short는 부호있는 정수로 승격됩니다). 두 번째 경우에는 세 번째 규칙이 적용됩니다 (부호있는 정수는 부호없는 정수의 모든 값을 나타낼 수 없으므로 부호없는 정수로 변경됨). 세 번째 경우에는 -1이 unsigned short로 변환 된 다음 첫 번째 규칙이 적용됩니다.

일반적으로 비교를 수행하기 전에 모든 변수를 동일한 부호있는 유형 (예상 범위를 유지할만큼 충분히 큼)으로 변환하여 혼동을 피하고 싶습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

c # JSONPatch가 int 및 enum에서 작동하지 않습니다.

분류에서Dev

int * 및 HANDLE * C #에서 동일

분류에서Dev

C에서 int에서 short까지의 비트 수준에서 typecasting이 어떻게 작동하는지 설명하십시오.

분류에서Dev

* pt = x; 작동하지 않음 (C ++에서 * 및 &의 의미)

분류에서Dev

C #에서 '(int) a', 'a as int'및 Convert.ToInt32 (a)의 차이점

분류에서Dev

런타임에서 변수 변환 (int에서 double로) 및 작동

분류에서Dev

unsigned int와 c ++의 unsigned short 차이

분류에서Dev

C에서 random (int) 및 randomize ()

분류에서Dev

C ++에서 int 배열의 길이 찾기, 어떻게 작동합니까?

분류에서Dev

int 및 double 대신 short 및 long 사용 (C ++)

분류에서Dev

왜 typedef void (* f_ptr) (int); 및 typedef void (* f_ptr) (); C에서 똑같이 작동합니까?

분류에서Dev

int 배열의 끝에서 Java의 시작으로 값 이동

분류에서Dev

iOS 8 및 iOS 10에서의 Firebase 동적 링크 동작

분류에서Dev

C에서 int * 및 int * [100] 유형의 차이점은 무엇입니까?

분류에서Dev

형식 지정자 % d 및 % u를 사용하여 ~ 0을 (unsigned int) 및 (unsigned short)로 캐스팅하면 short에 대해서는 동일한 결과가 생성되지만 int에 대해서는 다른 결과가 생성됩니다.

분류에서Dev

임의의 키보드 오작동-Vista 및 XP에서 발생

분류에서Dev

C # 및 VB.Net에서 동일한 프로그램에 대한 오버플로 동작의 차이

분류에서Dev

int 및 Integer에 대한 Java 동작 변경에 필요한 상수 표현식

분류에서Dev

c 프로그래밍에서 논리 및 (&&) 및 논리 또는 (||) 연산자의 혼란스러운 동작

분류에서Dev

* scanf에서 % n 연산자의 일관성 및 동작

분류에서Dev

.NET 5 / Core 및 .NET Framework에서 Newtonsoft.Json의 다른 동작

분류에서Dev

for 루프 내에서 if else 및 ifelse의 동작 차이

분류에서Dev

하나의 DAG 내에서 순차 및 동시 작업 실행

분류에서Dev

iPhone 및 Ipad에서 CorePlot 라이브러리의 다른 동작

분류에서Dev

zsh 및 bash 함수에서 $ (...)의 다른 동작

분류에서Dev

Ruby-on-Rails에서 Bootstrap Datepicker의 위치 및 동작

분류에서Dev

루비에서 'do .. end'및 "{..}"블록의 다른 동작

분류에서Dev

다른 아키텍처에서 getCString 및 withCString의 동작

분류에서Dev

명령 줄 및 Windows 탐색기에서 WMIC의 다른 동작

Related 관련 기사

  1. 1

    c # JSONPatch가 int 및 enum에서 작동하지 않습니다.

  2. 2

    int * 및 HANDLE * C #에서 동일

  3. 3

    C에서 int에서 short까지의 비트 수준에서 typecasting이 어떻게 작동하는지 설명하십시오.

  4. 4

    * pt = x; 작동하지 않음 (C ++에서 * 및 &의 의미)

  5. 5

    C #에서 '(int) a', 'a as int'및 Convert.ToInt32 (a)의 차이점

  6. 6

    런타임에서 변수 변환 (int에서 double로) 및 작동

  7. 7

    unsigned int와 c ++의 unsigned short 차이

  8. 8

    C에서 random (int) 및 randomize ()

  9. 9

    C ++에서 int 배열의 길이 찾기, 어떻게 작동합니까?

  10. 10

    int 및 double 대신 short 및 long 사용 (C ++)

  11. 11

    왜 typedef void (* f_ptr) (int); 및 typedef void (* f_ptr) (); C에서 똑같이 작동합니까?

  12. 12

    int 배열의 끝에서 Java의 시작으로 값 이동

  13. 13

    iOS 8 및 iOS 10에서의 Firebase 동적 링크 동작

  14. 14

    C에서 int * 및 int * [100] 유형의 차이점은 무엇입니까?

  15. 15

    형식 지정자 % d 및 % u를 사용하여 ~ 0을 (unsigned int) 및 (unsigned short)로 캐스팅하면 short에 대해서는 동일한 결과가 생성되지만 int에 대해서는 다른 결과가 생성됩니다.

  16. 16

    임의의 키보드 오작동-Vista 및 XP에서 발생

  17. 17

    C # 및 VB.Net에서 동일한 프로그램에 대한 오버플로 동작의 차이

  18. 18

    int 및 Integer에 대한 Java 동작 변경에 필요한 상수 표현식

  19. 19

    c 프로그래밍에서 논리 및 (&&) 및 논리 또는 (||) 연산자의 혼란스러운 동작

  20. 20

    * scanf에서 % n 연산자의 일관성 및 동작

  21. 21

    .NET 5 / Core 및 .NET Framework에서 Newtonsoft.Json의 다른 동작

  22. 22

    for 루프 내에서 if else 및 ifelse의 동작 차이

  23. 23

    하나의 DAG 내에서 순차 및 동시 작업 실행

  24. 24

    iPhone 및 Ipad에서 CorePlot 라이브러리의 다른 동작

  25. 25

    zsh 및 bash 함수에서 $ (...)의 다른 동작

  26. 26

    Ruby-on-Rails에서 Bootstrap Datepicker의 위치 및 동작

  27. 27

    루비에서 'do .. end'및 "{..}"블록의 다른 동작

  28. 28

    다른 아키텍처에서 getCString 및 withCString의 동작

  29. 29

    명령 줄 및 Windows 탐색기에서 WMIC의 다른 동작

뜨겁다태그

보관