etc./StackOverFlow

int32의 최대값은 얼마입니까?

청렴결백한 만능 재주꾼 2022. 3. 22. 11:04
반응형

질문자 :FlinkmanSV


번호가 기억나지 않습니다. 기억법이 필요해요.



2,147,483,647입니다. 그것을 암기하는 가장 쉬운 방법은 문신을 하는 것입니다.


Ben Hoffstein

내가 생각할 수있는 가장 정답은 Int32.MaxValue 입니다.


Adrian Clark

값이 10진법으로 기억하기 너무 어렵다고 생각되면 2진법을 시도하십시오. 111111111111111111111111111111


Curd

전체 Pi 숫자를 기억할 수 있다면 찾고 있는 숫자는 Pi의 10진수 자리 1,867,996,680에서 1,867,996,689까지입니다.

숫자 문자열 2147483647은 Pi의 십진수 1,867,996,680에 나타납니다. 3.14.......86181221809936452346 2147483647 10527835665425671614...

출처: http://www.subidiom.com/pi/


Diamantatos Paraskevas

10자리이므로 전화번호인 척하십시오(미국에 있다고 가정). 214-748-3647. 나는 그것을 호출하지 않는 것이 좋습니다.


WildJoe

하나의 큰 숫자로 생각하기 보다는 분해하여 관련 아이디어를 찾아보십시오. 예:

  • 2개의 최대 스누커 휴식(최대 휴식은 147)
  • 4년(48개월)
  • 3년(36개월)
  • 4년(48개월)

위의 내용은 가장 큰 음수에 적용됩니다. 플러스는 마이너스 1입니다.

위의 분석이 더 이상 기억에 남지 않을 수도 있지만(별로 흥미진진하지 않습니다!), 그런 아이디어를 생각해 낼 수 있기를 바랍니다!


Luke Bennett

최대 음수(32비트) 값 : -2147483648
(1 << 31)

최대 양수(32비트) 값 : 2147483647
~(1 << 31)

니모닉: "술에 취해 일명 흥분"

 drunk ========= Drinking age is 21 AK ============ AK 47 A ============= 4 (A and 4 look the same) horny ========= internet rule 34 (if it exists, there's 18+ material of it) 21 47 4(years) 3(years) 4(years) 21 47 48 36 48

Aaren Cordova

어쨌든, 이 정규식을 사용합니다(문자열에 Int32.MaxValue보다 크지 않은 10진수 형식의 음이 아닌 정수가 포함되어 있는지 확인합니다)

[0-9]{1,9}|[0-1][0-9]{1,8}|20[0-9]{1,8}|21[0-3][0-9]{1,7}|214[0-6][0-9]{1,7}|2147[0-3][0-9]{1,6}|21474[0-7][0-9]{1,5}|214748[0-2][0-9]{1,4}|2147483[0-5][0-9]{1,3}|21474836[0-3][0-9]{1,2}|214748364[0-7]

기억하는 데 도움이 될 수도 있습니다.


Chizh

2147483647 기억하는 방법입니다.

  • 214 - 2.14는 대략 파이-1이기 때문에
  • 48 = 6*8
  • 64 = 8*8

다음을 가로로 씁니다.

 214_48_64_ and insert: ^ ^ ^ 7 3 7 - which is Boeing's airliner jet (thanks, sgorozco)

이제 2147483647이 있습니다.

이것이 최소한 조금이라도 도움이 되기를 바랍니다.


Mikołaj Rozwadowski

2^(x+y) = 2^x * 2^y 2^10 ~ 1,000 2^20 ~ 1,000,000 2^30 ~ 1,000,000,000 2^40 ~ 1,000,000,000,000 (etc.) 2^1 = 2 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128 2^8 = 256 2^9 = 512

따라서 2^31(signed int max)은 2^30(약 10억) 곱하기 2^1(2) 또는 약 20억입니다. 그리고 2^32는 2^30 * 2^2 또는 약 40억입니다. 이 근사 방법은 약 2^64(오차가 약 15%까지 증가함)까지 충분히 정확합니다.

정확한 답이 필요하면 계산기를 가져와야 합니다.

편리한 단어 정렬 용량 근사:

  • 2^16 ~= 64천 // uint16
  • 2^32 ~= 4 billion // uint32, IPv4, unixtime
  • 2^64 ~= 16퀸틸리언(일명 160억 또는 1600만 조) // uint64, "bigint"
  • 2^128 ~= 256 quintillion quintillion (일명 256조 조) // IPv6, GUID

Wedge

괜찮은 계산기를 가지고 16진수 모드에서 "7FFFFFFFF"를 입력한 다음 10진수로 전환하세요.

2147483647.


darron

2.1 * 10^9 입니다. 2^{31} - 1 = 2,147,483,647 을 알 필요가 없습니다.

다음과 같이 C에서 찾을 수 있습니다.

 #include <stdio.h> #include <limits.h> main() { printf("max int:\t\t%i\n", INT_MAX); printf("max unsigned int:\t%u\n", UINT_MAX); }

제공합니다 (없이 잘 , )

 max int: 2,147,483,647 max unsigned int: 4,294,967,295

C++ 11

 std::cout << std::numeric_limits<int>::max() << "\n"; std::cout << std::numeric_limits<unsigned int>::max() << "\n";

자바

Java로도 이것을 얻을 수 있습니다.

 System.out.println(Integer.MAX_VALUE);

그러나 Java 정수는 항상 부호가 있음을 명심하십시오.

파이썬 2

Python에는 임의의 정밀도 정수가 있습니다. 그러나 Python 2에서는 C 정수에 매핑됩니다. 그래서 당신은 이것을 할 수 있습니다:

 import sys sys.maxint >>> 2147483647 sys.maxint + 1 >>> 2147483648L

따라서 정수가 2^31 -1 보다 커지면 Python이 long


Martin Thoma

다음은 2**31을 기억하기 위한 니모닉입니다. 최대 정수 값을 얻으려면 1을 빼세요.

a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9

 Boys And Dogs Go Duck Hunting, Come Friday Ducks Hide 2 1 4 7 4 8 3 6 4 8

2의 18승을 충분히 기억할 만큼 자주 사용했지만 2**31을 외우는 것도 귀찮아하지 않았습니다. 필요에 따라 계산하거나 상수를 사용하거나 2G로 추정하는 것은 너무 쉽습니다.


Mark Ransom

32비트, 하나는 부호용, 31비트 정보:

 2^31 - 1 = 2147483647

왜 -1인가?
첫 번째는 0이므로 가장 큰 것은 개수에서 1을 뺀 것 입니다.

cantfindaname88에 대한 편집

개수는 2^31이지만 가장 큰 값은 2147483648(2^31)이 될 수 없습니다. 왜냐하면 우리는 1이 아니라 0부터 계산하기 때문입니다.

 Rank 1 2 3 4 5 6 ... 2147483648 Number 0 1 2 3 4 5 ... 2147483647

3비트만 있는 또 다른 설명: 1은 부호, 2는 정보

 2^2 - 1 = 3

3비트로 가능한 모든 값 아래: (2^3 = 8개 값)

 1: 100 ==> -4 2: 101 ==> -3 3: 110 ==> -2 4: 111 ==> -1 5: 000 ==> 0 6: 001 ==> 1 7: 010 ==> 2 8: 011 ==> 3

Aerospace

글쎄, 그것은 32 비트를 가지고 있으므로 2 ^ 32 개의 다른 값을 저장할 수 있습니다. 그 중 절반은 부정적입니다.

솔루션은 2,147,483,647입니다.

그리고 가장 낮은 값은 -2,147,483,648입니다.

(음수 값이 하나 더 있습니다.)


Sarien

글쎄, 농담을 제외하고, 당신이 정말로 유용한 기억 규칙을 찾고 있다면, 내가 항상 큰 숫자를 기억하는 데 사용하는 규칙이 있습니다.

번호를 3-4자리로 나누고 휴대폰 키보드의 프로젝션을 사용하여 시각적으로 기억해야 합니다. 그림에 표시하는 것이 더 쉽습니다.

여기에 이미지 설명 입력

보시다시피 이제부터는 3가지 모양만 기억하면 됩니다. 그 중 2개는 Tetris L 모양이고 1개는 진드기 모양 입니다. 10자리 숫자를 외우는 것보다 훨씬 쉽습니다.

숫자를 기억해야 할 때 모양을 기억하고 전화 키보드를 상상하거나 보고 모양을 투영하십시오. 아마도 처음에는 키보드를 봐야 할 것입니다. 그러나 약간의 연습 후에는 숫자가 왼쪽 위에서 오른쪽 아래로 이동한다는 것을 기억할 것이므로 단순히 머리로 상상할 수 있을 것입니다.

모양의 방향과 각 모양의 자릿수를 기억해야 합니다(예: 2147483647 예에는 4자리 Tetris L과 3자리 L이 있습니다).

이 기술을 사용하여 중요한 숫자를 쉽게 기억할 수 있습니다(예: 16자리 신용 카드 번호 등을 기억했습니다).


Ivan Yurchenko

정수에 대해 이 작업을 수행하는 가장 쉬운 방법은 Int.maxInt()와 같은 것이 없는 경우 16진수를 사용하는 것입니다. 그 이유는 다음과 같습니다.

최대 부호 없는 값

 8-bit 0xFF 16-bit 0xFFFF 32-bit 0xFFFFFFFF 64-bit 0xFFFFFFFFFFFFFFFF 128-bit 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

7F를 최대 부호 값으로 사용하는 부호 있는 값

 8-bit 0x7F 16-bit 0x7FFF 32-bit 0x7FFFFFFF 64-bit 0x7FFFFFFFFFFFFFFF

최대 부호 값으로 80을 사용하는 부호 있는 값

 8-bit 0x80 16-bit 0x8000 32-bit 0x80000000 64-bit 0x8000000000000000

어떻게 작동합니까? 이것은 이진법과 매우 유사하며 각 16진수는 정확히 4비트입니다. 또한 많은 컴파일러가 바이너리를 지원하는 것보다 16진수를 훨씬 더 잘 지원합니다.

 F hex to binary: 1111 8 hex to binary: 1000 7 hex to binary: 0111 0 hex to binary: 0000

따라서 7F는 01111111과 같습니다. / 7FFF는 0111111111111111과 같습니다. 또한 이것을 "매우 높은 상수"에 사용하는 경우 7F...는 안전한 16진수이지만 7F와 80을 시험해보고 인쇄하기만 하면 됩니다. 어느 것인지 확인하기 위해 화면으로 이동합니다.

0x7FFF + 0x0001 = 0x8000, 따라서 손실은 하나의 숫자일 뿐이므로 0x7F...를 사용하는 것은 일반적으로 보다 안정적인 코드를 위해 나쁜 절충점이 아닙니다. 특히 32비트 이상을 사용하기 시작하면


Joe Plante

먼저 47을 두 번 작성하고( Agent 47 이 마음에 드십니까?), 공백을 표시된 대로 유지합니다(각 대시는 한 자리에 대한 슬롯입니다. 처음 2개 슬롯, 다음 4개)

 --47----47

12 가 있다고 생각하십시오(12 = 12이기 때문에). 곱하기를하여 4 , 첫 번째 에이전트 47의 수의 자리, 즉 47 , 그리고 당신이 이미 가지고있는 첫 번째 쌍의 오른쪽에 결과를 배치

 12 * 4 = 48 --4748--47 <-- after placing 48 to the right of first 47

그런 다음 123 곱하고(에이전트 47 번호의 두 번째 숫자인 7 을 만들기 위해서는 7 - 4 = 3 이 필요합니다) 결과를 처음 2개 쌍, 마지막 쌍-슬롯의 오른쪽에 넣습니다.

 12 * 3 = 36 --47483647 <-- after placing 36 to the right of first two pairs

마지막으로 맨 오른쪽 숫자(이 경우 2)부터 시작하여 손에서 숫자를 하나씩 드래그하여 얻은 첫 번째 빈 슬롯에 놓습니다.

 2-47483647 <-- after placing 2 2147483647 <-- after placing 1

당신은 그것을 가지고 있습니다! 음의 한계의 경우 양의 한계보다 절대값이 1 더 많다고 생각할 수 있습니다.

몇 번만 연습하면 금방 익힐 것입니다!


Sнаđошƒаӽ

2GB

(답변의 최소 길이가 있습니까?)


Rune

.NET 가정 -

 Console.WriteLine(Int32.MaxValue);

Kev

MaxInt 아닌 마음으로 ASCII 테이블 을 알고 있는 경우:
!GH6G = 21 47 48 36 47


Mark Hurd

그것을 암기하는 가장 좋은 규칙은 다음과 같습니다.
21 (매직넘버!)
47 (그냥 기억하세요)
48 (순차적으로!)
36 (21 + 15, 두 마법 모두!)
47 다시

또한 10자리 숫자보다 5쌍을 기억하는 것이 더 쉽습니다.


Leandro Bardelli

기억하는 가장 쉬운 방법은 std::numeric_limits< int >::max()

예를 들어 ( MSDN 에서 ),

 // numeric_limits_max.cpp #include <iostream> #include <limits> using namespace std; int main() { cout << "The maximum value for type float is: " << numeric_limits<float>::max( ) << endl; cout << "The maximum value for type double is: " << numeric_limits<double>::max( ) << endl; cout << "The maximum value for type int is: " << numeric_limits<int>::max( ) << endl; cout << "The maximum value for type short int is: " << numeric_limits<short int>::max( ) << endl; }

Seq

흥미롭게도 Int32.MaxValue에는 2,147,486,647보다 더 많은 문자가 있습니다.

하지만 다시 코드 완성 기능이 있습니다.

그래서 우리가 정말로 외워야 할 것은 Int3<period>M<enter> 입니다. Visual Studio에서 입력할 수 있는 문자는 단 6자입니다.

업데이트 어떤 이유로 나는 downvoted되었습니다. 내가 생각할 수있는 유일한 이유는 그들이 내 첫 번째 진술을 이해하지 못했기 때문입니다.

"Int32.MaxValue"는 입력하는 데 최대 14자가 필요합니다. 2,147,486,647은 쉼표를 입력하는지 여부에 따라 10자 또는 13자를 입력해야 합니다.


NotMe

2^(10*x)는 약 10^(3*x)임을 기억하십시오. 아마도 이미 킬로바이트/키비바이트 등에 익숙할 것입니다. 즉:

 2^10 = 1024 ~= one thousand 2^20 = 1024^2 = 1048576 ~= one million 2^30 = 1024^3 = 1073741824 ~= one billion

int는 31비트(부호의 경우 + ~1비트)를 사용하므로 2^30을 두 배로 늘리면 약 20억이 됩니다. 32비트를 사용하는 unsigned int의 경우 40억에 대해 다시 두 배입니다. 오차 요인은 물론 클수록 높아지지만 정확한 값을 기억할 필요는 없습니다(필요한 경우 미리 정의된 상수를 사용해야 함). 대략적인 값은 무언가가 범람에 위험할 정도로 가까울 때를 알아차리기에 충분합니다.


Brian

이것이 내가 2,147,483,647을 기억하는 방법입니다

멀리 사바나 분기에 옵티머스 트리오 hexed 40 septenary

 2 - To 1 - A 4 - Far 7 - Savannah 4 - Quarter 8 - Optimus 3 - Trio 6 - Hexed 4 - Forty 7 - Septenary

Samuel

무슨 뜻이에요? 2^32라는 것을 기억하기 쉬울 것입니다. 해당 숫자의 값을 기억하는 규칙을 원할 경우 일반적으로 이진수와 십진수 사이를 변환하는 것이 편리한 경험 법칙입니다.

2^10 ~ 1000

2^20 ~ 1,000,000을 의미합니다.

그리고 2^30 ~ 1,000,000,000

그 두 배(2^31)는 대략 20억이고 다시 두 배(2^32)는 40억입니다.

이진수의 대략적인 추정치를 얻는 쉬운 방법입니다. 2진수로 10개의 0은 10진수로 3개의 0이 됩니다.


jalf

Objective-C(iOS & OSX)에서는 다음 매크로만 기억하십시오.

 #define INT8_MAX 127 #define INT16_MAX 32767 #define INT32_MAX 2147483647 #define INT64_MAX 9223372036854775807LL #define UINT8_MAX 255 #define UINT16_MAX 65535 #define UINT32_MAX 4294967295U #define UINT64_MAX 18446744073709551615ULL

juniperi

Int32는 번호를 저장할 수 있는 32비트가 있음을 의미합니다. 가장 높은 비트는 부호 비트이며 숫자가 양수인지 음수인지 나타냅니다. 따라서 양수와 음수에 대해 2^31비트가 있습니다.

0이 양수이면 (앞서 언급한) 논리적 범위를 얻습니다.

+2147483647 ~ -2147483648

그것이 작다고 생각되면 Int64를 사용하십시오.

+9223372036854775807 ~ -9223372036854775808

그리고 왜 이 번호를 기억하고 싶은 겁니까? 코드에 사용하시겠습니까? Int32.MaxValue 또는 Int32.MinValue는 정적 값(.net 코어 내)이므로 코드로 새 int를 만드는 것보다 사용 속도가 빠르기 때문에 항상 코드에 사용해야 합니다.

내 진술: 기억으로 이 숫자를 안다면.. 당신은 단지 과시하는 것입니다!


Andre Haverdings

이것을 기억하십시오: 21 IQ ITEM 47

모든 전화 패드로 디코딩하거나 종이에 직접 적어둘 수 있습니다.

"21 IQ ITEM 47"을 기억하기 위해 "Hitman:Codename 47에는 21개의 미션이 있었고, 각각의 IQ ITEM은 그 자체였습니다."로 갈 것입니다.

또는 "나는 IQ가 높고 입에 물고 있는 것을 좋아하지 않기 때문에 매일 21시 47분에 이를 닦습니다."


soprof

출처 : http:www.stackoverflow.com/questions/94591/what-is-the-maximum-value-for-an-int32

반응형