int의 최대값

자바의 Integer.MaxValue 함수와 같이 C/C++에서 (컴파일러에 따라) 정수의 최대값을 찾는 코드가 있나요?

질문에 대한 의견 (6)
해결책

C++로:

#include 

를 사용한 다음

int imin = std::numeric_limits::min(); // minimum value
int imax = std::numeric_limits::max();

std::numeric_limits`는 다른 유형으로 인스턴스화할 수 있는 템플릿 유형입니다:

float fmin = std::numeric_limits::min(); // minimum positive value
float fmax = std::numeric_limits::max();

C:

#include 

를 입력한 다음

int imin = INT_MIN; // minimum value
int imax = INT_MAX;

또는

#include 

float fmin = FLT_MIN;  // minimum positive value
double dmin = DBL_MIN; // minimum positive value

float fmax = FLT_MAX;
double dmax = DBL_MAX;
해설 (6)

39 의 그러니까말이야 it& 오래된 질문 하지만 어쩌면 누군가 이 솔루션을 사용할 수 있습니다.

int size = 0; // Fill all bits with zero (0)
size = ~size; // Negate all bits, thus all bits are set to one (1)

& # 39, 그 결과 지금까지 인도되니 서명됨 int 크기 은 - 1.

size = (unsigned int)size >> 1; // Shift the bits of size one position to the right.

(표준) 의 경우, 비트 않는비즈니스 가고 있다 "고 1 과 0 및 제외어 서명됩니다 가변적입니다 약간만이라도 부호 없는 경우 또는 서명됩니다 가변입니다 및 양수입니다.

    • 크기 및 제외어 서명됨) 으로, 이는 큰 도움이 안 되는 그런 변화가 부호 비트가 1 로, 따라서 unsigned int, 강제로 캐스팅 0 의 부호 비트가 0 으로 설정할 수 있도록 shift+ctrl 대신 다른 모든 비트를 동시에 거주하리라 1.

cout 
해설 (1)

#include 
#include 
using namespace std;

int main() {
  cout 
해설 (8)

내가 사용하는 최대값입니다 서명됨 정수, 매크로 슬라이드에서는 얻을 수 있는 크기의 독립화할 부호없는 정수형 유형: 사용하며, t # 39 - 울버프로 mgcc 있는 won& 아니다.


#define SIGNED_MAX(x) (~(-1 
해설 (0)

다음과 같은 코드를 작성해 보세요:


int  max_neg = ~(1 
해설 (1)

O. K. 내가 괜찼습니다 %s/dbase/ext_table. 담당자별로 (필립 드 무이터) 이전 오토메이티드 언급을 disk_b_s10database it& # 39 의 점수를 높이기 위한 새로운 사용한 예를 정의하십시오 SIGNED_MAX 대한 그의 업그레이드됨 사소 ehas 서명되지 않은 유형:


// We can use it to define limits based on actual compiler built-in types also: 
#define INT_MAX   SIGNED_MAX(int)
// based on the above, we can extend it for unsigned types also:
#define UNSIGNED_MAX(x) (  (SIGNED_MAX(x)
해설 (0)

난 보통 int , 특정 최대값인 기록하십시오 진수 표기법:

int my_max_int = 0x7fffffff;

비정규직 대신 소수점 값:

int my_max_int = 2147483647;
해설 (0)

뭐 어때 ' (1 &lt <; ( sizeof (int) -2)) - 1 + (1 &lt <; ( sizeof (int) -2) '. 이는 동일합니까 ( sizeof (int) -2) - 1 + 2 '2 ^ ^ ( sizeof (int) -2)'.

만약 '스이제로프 (int) = 4 = &gt. ^ ^ (84-2) = 2 ^ 2 (84-2) - 1 + 2 + 1 = 20 - 30 - ^ 30 (2 ^ 32tb) /2 1 [맥스야 서명됨 int 의 4 바이트입니다] '.

39 can& 사용할 수 있습니다, t '2 (1 &lt <; ( sizeof (int) -2) - 1 '가 아니라' 때문에 오버플로입니다 (1 &lt <; ( sizeof (int) -2)) - 1 + (1 &lt <; ( *sizeof (int) -2) '였다.

해설 (0)

#include 

int main(){
    int32_t maxSigned = -1U >> 1;
    cout 
해설 (0)