programing

부호 없는 데이터 유형은 무엇입니까?

newsource 2022. 8. 1. 22:49

부호 없는 데이터 유형은 무엇입니까?

난 이걸 본 적이 있다.unsigned"typeless" 타입은 여러 번 사용했지만 이에 대한 설명을 본 적이 없습니다.내 생각엔 그 편지들이 서로 주고받는 사람이 있을 것 같아요signed예를 들어 다음과 같습니다.

static unsigned long next = 1;
/* RAND_MAX assumed to be 32767 */
int myrand(void) {
    next = next * 1103515245 + 12345;
    return((unsigned)(next/65536) % 32768);
}
void mysrand(unsigned seed) {
    next = seed;
}

지금까지 수집한 정보:
- 내 시스템에서sizeof(unsigned) = 4(32비트 부호 없는 int로 변경)
- 서명되지 않은 버전에 다른 유형을 캐스팅하기 위한 줄임말로 사용할 수 있습니다.

signed long int i = -42;
printf("%u\n", (unsigned)i);

이것은 ANSI C입니까, 아니면 컴파일러 확장자입니까?

unsigned의 줄임말이다unsigned int표준 C에 정의되어 있습니다.

unsigned수단unsigned int.signed수단signed int. 사용방법unsigned를 선언하는 게으른 방법입니다.unsigned intC. 네, ANSI입니다.

과거 C에서는 데이터형 "int"를 생략한 경우로 가정했습니다."unsigned"는 "unsigned int"의 줄임말입니다.이것은 오랫동안 나쁜 관행으로 여겨져 왔지만, 여전히 그것을 사용하는 상당한 양의 코드가 존재한다.

주식회사,unsigned에 대한 지름길입니다.unsigned int.

에 대해서도 같은 것을 가지고 있습니다.long그것은 의 지름길이다long int

또, 다음과 같이 선언할 수도 있습니다.unsigned long(그것은,unsigned long int).

이것은 ANSI 표준에 있습니다.

C 및 C++의 경우

unsigned = unsigned int (Integer type)
signed   = signed int (Integer type)

n비트를 포함하는 부호 없는 정수는 0에서 (2^n-1) 사이의 값을 가질 수 있습니다.이것은 2^n의 다른 값입니다.

부호 없는 정수는 양수 또는 0입니다.

부호 있는 정수는 2의 보수를 사용하여 컴퓨터에 저장됩니다.

C17 6.7.2 22에 따라:

유형 지정자의 각 목록은 다음 다중 집합 중 하나여야 합니다(항목당 여러 개의 다중 집합이 있는 경우 쉼표로 구분). 유형 지정자는 임의의 순서로 발생할 수 있으며 다른 선언 지정자와 혼합될 수 있습니다.

- 무효
: 문자
: 부호 있는 문자
: 부호 없는 문자
: short, signed short, short int 또는 signed short int
: 부호 없는 쇼트 또는 부호 없는 쇼트 int
: int, signed 또는 signed int
: 부호 없음 또는 부호 없음 int
: long, signed long, long int 또는 signed long int
: 부호 없는 long 또는 부호 없는 long int
- long long, signed long, long long int 또는 signed long long int
: 부호 없는 long 또는 부호 없는 long int
: 플로트
: 2배
: 긴 더블
: _부울
- float_복합
- 이중_복잡함
- 긴 이중 _ 복잡함
: atomic 타입 지정자
: structure 또는 union 지정자
: 열거형 지정자
: typedef name

그래서 만약의 경우unsigned int 쓸 수 요.unsigned ★★★★★★★★★★★★★★★★★」unsigned int아니면 우리가 미쳤다고 느끼면int unsigned자는는 【...】"을 허용할 만큼 충분히 멍청하기 때문에 "..." 혼재될 수 있습니다.이것은 언어의 알려진 결함이다.

C 는 "C"를 사용합니다.unsigned int.

다른 질문에서 제 답변을 가져오고 있습니다.

C 규격, 섹션 6.7.2에서:

: 부호 없음 또는 부호 없음 int

, ②,unsigned하지 않은 로는 「」가 unsigned int 글쓰기를unsigned a is is is is is와 unsigned int a.

언급URL : https://stackoverflow.com/questions/1171839/what-is-the-unsigned-datatype