C 표준과 C 컴파일러 C에서 사용자 정의 너비 정수를 만들 수 있습니까?
는 동일한 의미를 사용하여 코드의 가능한 것이다 C의 128 비트 정수를 형성하는 방법이 있는가 등uint8_t
,
int16_t
으로 고정 폭 정수형 갖추고 기존 고정 너비 정수로?
C 표준과 C 컴파일러 C에서 사용자 정의 너비 정수를 만들 수 있습니까?
는 동일한 의미를 사용하여 코드의 가능한 것이다 C의 128 비트 정수를 형성하는 방법이 있는가 등uint8_t
,
int16_t
으로 고정 폭 정수형 갖추고 기존 고정 너비 정수로?
64 비트 컴퓨터를 프로그래밍한다고 가정하면 struct
이 uint64_t
초인 uint128_t
유형을 정의하고 수동으로 필요한 산술 연산자를 구현할 수 있습니다. 한 방향 또는 다른 방향으로 오버 플로우하는 연산의 경우 낮은 64 비트에서 높은 비트로 또는 그 반대로 수동으로 비트를 운반해야합니다. 예를 들어, 0xFFFFFFFF를 0x00000001에 추가하십시오. 이는 GMP와 같은 임의 크기의 bignum에 전체 라이브러리를 사용하는 것보다 훨씬 가벼운 것입니다. 쓰기가 약간 까다 롭지 만 불가능한 것은 아닙니다. 예를 들어 8 비트 컴퓨터의 내장 BASIC이 하루에 255보다 큰 숫자로 수학을 처리하는 방법과 거의 같습니다.
연산자가 C의 사용자 정의 유형에 과부하가 걸리지 않습니다. 대신 add(), subtract() 등의 함수를 호출해야합니다. –
기본 제공 유형처럼 작동하지만 실제로는 사용자 지정 동작을 사용하는 특수 유형 인 경우 C++ 개체를 사용하는 것이 좋습니다. 128 비트로 작동하는 표준 정수형 의미론으로 C++ 객체를 쉽게 만들 수 있습니다. – StilesCrisis
나는 순수한 C 코드 기반을 연구 중이다. – merlin2011