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


1380

나는 그 숫자를 기억할 수 없다. 메모리 규칙이 필요합니다.


48
부호없는 : 2³²-1 = 4 · 1024³-1; 부호있는 비트가 가장 높은 비트이므로 -2³¹ .. + 2³¹-1입니다. 2⁰ = 1에서 2¹⁰ = 1024를 배우고 결합하십시오. 1024 = 1k, 1024² = 1M, 1024³ = 1G
01 초에 comonad

31
나는 일반적으로 3 비트마다 10 진수 정도라는 것을 기억합니다. 32 비트는 10 자리입니다.
Barmar

8
@JoachimSauer 적어도 이런 종류의 숫자를 인식하는 법을 배우면 디버깅에 도움이 될 수 있습니다.
Dunaril

72
"디스크가 가득 차면 모든 mbyte를 삭제하면 아카이브됩니다"(2 자, 1 자, 4 자, 7 자, 4 자, 8 자, 3 자, 6 자, 4 자, 7 자)
UltraCommit

8
INT32가 충분하지 않은 경우 : bbc.com/news/world-asia-30288542
ingaham

답변:


5073

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


83
내 니모닉 : 2 ^ 10은 1000에 매우 가깝기 때문에 2 ^ (3 * 10)은 1000 ^ 3 또는 약 10 억입니다. 32 비트 중 하나가 부호로 사용되므로 최대 값은 실제로 2 ^ 31에 불과합니다. 이는 2 ^ (3 * 10)에 비해 2 배 정도의 2 배입니다.
16807

164
쉼표없이 2147483647.
Vern D.

20
Integer.MAX_VALUEJava에서 간단히 사용하십시오 .
Tim

184
얼굴에 문신이 있으면 거울에서 올바르게 읽히도록 뒤집는 것을 잊지 마십시오. 그렇지 않으면 746,384,741,2가 잘못되어 창피합니다.
Larry S

127
2,147,483,647 = 0x7FFFFFFF, 기억하고 싶다면 16 진수를 사용하십시오.
roottraveller

493

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


18
이것이 존재하기 전에 모든 프로젝트에서 INT32_MIN 및 INT32_MAX를 #define했습니다.
WildJoe

45
안녕하십니까? 나는 다시 분개했다. 더 이상 문신을 할 장소가 없었습니다. 분명히, 31415 개 소수에 ISO-8859-1 문자 세트, 그리고 파이는 우선 순위를 얻어야했다
sehe을

3
프로그래밍 할 때 : 99 %의 경우에 그렇습니다. 그러나 프로그래밍 방식을 계획하거나 데이터 작업을 수행하는 데는 20 억 개 정도라는 것을 알고 싶을 수도 있습니다. :)
Andre Figueiredo

@sehe 지금까지 latin1 / Windows 1252가 더 이상 사용되지 않습니까? ASCII의 7 바이트에 맞지 않으면 메인 메모리에 들어갈 가치가 없다고 생각합니다. 내 말은 ... 모든 유니 코드 코드 페이지는 다소 유용하지만, 메가 스킨 공간 이상은 낭비로 보인다. (여전히 "pageup / pagedown"또는 "pagehome / pageend"에 대한 설명 문자는 포함되지 않습니다)

1
이 속성은 올바른 숫자를 언급하는 것에 대한 추가 조언이 될 수 있습니다. 그러나 값을 결정하는 이식 할 수없는 방법만을 언급하고 이것이 어떤 프로그래밍 언어에 적용되는지 언급하지 않기 때문에이 답변이 마음에 들지 않습니다.
mozzbozz

439

10 진수에서 기억하기 어려운 값이라고 생각되면 2 단계를 시도하십시오. 1111111111111111111111111111111


145
@Nick Whaley : 아니요. 1111111111111111111111111111111은 긍정적입니다. 11111111111111111111111111111111은 음수 일 것입니다 :-)
Curd

58
16
진법

34
11111111111111111111111111111111기본 2 숫자 인 @Curd 는 여전히 양수입니다 (기본 2의 음수는 -1) . 이 비트 시퀀스는 32 비트 2의 보수 수를 나타내는 경우에만 음수입니다. :)
BlueRaja-Danny Pflughoeft

143
가장 쉽게 기억할 수있는 것은 2,147,483,647입니다. 그러면 1 만 기억하면됩니다.
big_tommy_7bb

82
@ tim_barber_7BB 실제로, 그것은 10입니다.
fscheidl

317

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

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

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


30
답을 읽기 시작했을 때 20 자리와 같은 실용적인 것을 기대하고있었습니다.
JqueryToAddNumbers

95
꽤 멋진 것 같습니다. 1,867,996,680를 기억해야 할 또 다른 메모리 규칙이 있습니까? 어떤 인덱스를 찾아야하는지 기억하기가 어렵다는 것을
알았습니다

10
" 당신은 전체 파이 번호를 ... 기억할 수 있다면 "- 아니, 당신은 할 수 없습니다, 그것은없는 비이성적 인 8-D {등이 Q & A를 하나 또는 두 개의 게시물 가능하다}
SlySven

10
@Alderath 나는 보통 숫자 380,630,713에서 시작하는 sqrt (2)의 10 진수로 기억합니다 ..
Henrik

2
@Alderath : 숫자 1867996680은 2의 제곱근의 380,630,713 번째 10 진수에 나타납니다.
Yair Halberstadt

290

10 자리 숫자이므로 전화 번호 인 것처럼 가장합니다 (미국에 거주한다고 가정). 214-748-3647. 전화하지 않는 것이 좋습니다.


13
전화 번호로 기억하는 것에 대해 말하면, 그것을 사용하는 전화 스패머가있을 수 있습니다 : mrnumber.com/1-214-748-3647
Steven

8
"댈러스에는"748 "교환이 없습니다.이 번호는 가짜입니다." -shambleh가 링크 한 페이지에서
Tarnay Kálmán

104
@Steven 나는 스패머라고 생각하지 않으며 실수 로 MySQL INT대신 전화 번호를 저장 한 사람들입니다 VARCHAR.
Zarel

8
전화를 했어요. 몇 번 울렸다가 오류 발신음이 들렸습니다. = (
Krythic

172

그것을 하나의 큰 숫자로 생각하기보다는 그것을 세분화하고 관련된 아이디어를 찾아보십시오.

  • 최대 스누커 브레이크 2 회 (최대 브레이크는 147 회)
  • 4 년 (48 개월)
  • 3 년 (36 개월)
  • 4 년 (48 개월)

위의 가장 큰 음수에 적용됩니다. 긍정적 인 것은 그 빼기 1입니다.

어쩌면 위의 고장은 더 이상 기억에 남지 않을 것입니다 (매우 흥미롭지는 않습니다!).하지만 희망이있는 아이디어를 얻을 수 있기를 바랍니다!


99
그것은 내가 본 가장 복잡한 기억 장치 중 하나입니다. 감동적인.
벤 호프 슈타인

9
Derren Brown과 같은 사람들은 실제로 이런 종류의 접근 방식을 옹호합니다. 숫자를 임의의 숫자로 나누는 것이지만
Luke Bennett

19
나는 더 나은 니모닉을 가지고 있습니다 : 분명히 2 ^ 31이므로 기억해야 할 것은 2와 31뿐입니다! 아, 잠깐만 ...
Tamas Czinege 2016 년

28
@ DrJokepu 연산자 우선 순위에 대해 잘 모르겠습니다 ... 2^(31!)또는 그 의미 (2^31)!입니까?
Alderath

1
@Lucio 내 대답은 첫 번째 경우 47이 아니라 48로 끝나는 가장 큰 음수와 관련이 있습니다.
Luke Bennett

144

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

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

니모닉 : "술에 취한 AKA 흥분"

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

27
니모닉을 기억하기 가장 어려운 세계. 0118 999 88199 9119 752 ... 3을 기억할 수 있다면 이것을 기억할 수 있습니다.
BenM

11
@ Rondles 나는 그것이 실제로 끝에 7253이라고 생각합니다.
Tim Tisdall

21
아니. 나이는 18 세입니다.이 니모닉을 사용할 수없는 것 같습니다. 제 인생은 망가졌습니다.
Joffrey

4
@Aaren Cordova 그들은 stackoverflow가 결코 재미 있지 않을 것이라고 말했었습니다 .Q & A 사이트 일뿐입니다. 일반적 으로이 답변을 지적합니다. 이 일에만 천재의 마음 속에 만들 수 있습니다,이 의미 입니다 예술.
Mohd Abdul Mujib 2016 년

5
최대 음수 32 비트 정수 또는 해당 문제에 대한 64 비트는 -1입니다.
Fred Mitchell

75

어쨌든이 정규 표현식을 사용하십시오 (문자열에 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]

아마 기억하는 데 도움이 될 것입니다.


12
그것은 훨씬 쉽고 재미있게 들립니다. 실제로 그것은 실제로보다 훨씬 쉽습니다 2147483647. 이것은 OP에 큰 도움이 될 것입니다
Sнаđошƒӽ ӽ

61

그게 내가 기억하는 방법입니다 2147483647.

  • 214-2.14는 대략 pi-1이므로
  • 48 = 6 * 8
  • 64 = 8 * 8

이것을 수평으로 작성하십시오.

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

이제 2147483647이 있습니다.

이것이 조금 도움이되기를 바랍니다.


3
좋은 것! 214 규칙은 pi-1이어야한다고 생각합니다. 또한 마스크는 64가 아니라 68을 보여줍니다. =) 나와 같은 항공 버프의 경우 737 값은 Boeing의 중형 정기 여객기 제트와 연관되어 있다는 것을 기억하기 쉬워야합니다.

그 이상으로 갈 수 있습니다. 소수를 버리고 pi와 2 ^ 31-1을 비교하십시오. 같은 위치에서 141 대 147을 얻으므로 마지막 숫자는 7이됩니다. 592 대 483은 모두 한 자리입니다. 그리고 643 대 647은 다시 7 가지가되었습니다.
피터 쿠퍼

@PeterCooper Altho pi의 소수는 1415926_5_35로 시작합니다 (4가 아닌 5 참고)
Moberg

15
내 니모닉은 2로 나눈 (기억하기 쉬운) 4294967296을하는 것입니다
MM

56
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 (int 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 ~ = 40 억 // uint32, IPv4, 유닉스 타임
  • 2 ^ 64 ~ = 16 개의 quintillion (일명 160 억 또는 1600 만 조) // uint64, "bigint"
  • 2 ^ 128 ~ = 256 quintillion quintillion (일명 256 조 조) // IPv6, GUID

76
그것이 바로 하드 드라이브 제조업체들이 말한 것입니다.
Scott Stafford

46

괜찮은 계산기를 가지고 16 진수 모드에서 "7FFFFFFF"를 입력 한 다음 십진수로 전환하십시오.

2147483647.


150
괜찮은 계산기는 2 ^ 31도 할 수 있습니다.
Christoffer 2016 년

17
나는 2 ^ 31이 그것을하는 먼 길처럼 보인다 : /
States

2
아니면 그냥 16 진수로 기억하세요
Vernon

4
그냥 ... 쓰기 진수에 있습니다. 또는 Int32.MaxValue/numeric_limits<int32_t>::max()
sehe

8
@Christoffer 그것은 실제로 2 ^ 31-1 :)
kupsef

36

에 관한 것 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 2에서는 C 정수에 매핑됩니다. 그래서 당신은 이것을 할 수 있습니다 :

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

그래서 파이썬 long은 정수가 커질 때로 전환합니다.2^31 -1


파이썬 답변은 구식입니다. stackoverflow.com/questions/13795758/…
NOhs

@NOhs 링크에 감사하지만 Python 답변은 "Python 2"에 관한 것입니다 (섹션 제목에 2를 추가하여 더 명확하게합니다). 그래서 내 대답은 구식이 아닙니다. (그러나 파이썬 2는 물론입니다)
Martin Thoma

35

다음은 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

나는 그것들을 기억하기에 충분할 정도로 종종 최대 18의 2의 힘을 사용했지만 심지어 2 ** 31을 암기하는 것을 귀찮게하지 않았습니다. 필요에 따라 계산하거나 상수를 사용하거나 2G로 추정하기가 너무 쉽습니다.


3
2 ^ 10, 2 ^ 11, 2 ^ 12 또는 2 ^ 17 (모두 0이 있음)에 대해 무엇을합니까?
supercat

2
@supercat 나는 a = 0을 rebase하거나 o = 0을 사용할 것이다.
마크 랜섬

대단해. 고마워, 내 생명을 구해
chenz

31

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

@ cantfindaname88 : 2 ^ 31 = 총 조합이므로 0에서 (2 ^ 31 -1)까지입니다. 네, 첫 번째는 0입니다.
Luciano

30

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

해결책은 2,147,483,647입니다

가장 낮은 값은 −2,147,483,648입니다.

(음수 값이 하나 더 있음에 유의하십시오.)


32 비트이므로 2 ^ 32 값을 저장할 수 있습니다. 그렇습니다.
JB.

28

글쎄, 농담 외에도 유용한 메모리 규칙을 찾고 있다면 항상 큰 숫자를 기억하는 데 사용하는 규칙이 있습니다.

3-4 자리 숫자로 숫자를 세분화하고 휴대폰 키보드의 투영을 사용하여 시각적으로 기억해야합니다. 사진에 표시하는 것이 더 쉽습니다.

여기에 이미지 설명을 입력하십시오

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

숫자를 기억해야 할 경우 도형을 기억하기 만하면 전화 키보드를 상상하고보고 도형을 투영합니다. 어쩌면 처음에는 키보드를 봐야하지만 약간의 연습 후에 숫자가 왼쪽 상단에서 오른쪽 하단으로 가고 있다는 것을 기억할 것이므로 머리에 간단히 상상할 수 있습니다.

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

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


깔끔한 아이디어! 셰이프 1은 2147, 셰이프 2는 483, 셰이프 3은 647을 제공하지만, 그림과 같이 6 5 47 로 해석 될 수 있습니다 . 교차 된 모든 숫자를 포함 할시기를 알 수있는 방법은 무엇입니까? ) vs. 일부를 건너 뛰는 시간 (모양 3에서와 같이)? 또한 모양이 각각 4, 3 및 3 자리를 인코딩한다는 것을 기억해야합니다. 또는 직선 대신 6에서 4까지의 호로 모양 3을 그릴 수 있습니다.
jskroch

@Squinch 음, 특히 int. Max를 기억하는 데는 20 억 정도이므로 10 개의 숫자가 있음을 알 수 있으므로 문제가되지 않아야합니다 (첫 번째 모양에 4 개의 숫자가 있으면 두 번째 및 세 번째 숫자가 있음을 의미 함) 모양에 따라 3). 그러나이 방법을 임의의 숫자에 사용하려는 경우 좋은 지적입니다. 또한이 방법으로 기억하기 어려운 숫자가 있습니다 (예 : 1112 또는 그 밖의 것). 다른 한편으로, 그러한 숫자를 기억하는 것이 어려워서는 안됩니다. 그래서 나는 그것이 당신에게 달려 있다고 말하고, 당신이 이것에 흥미로운 것을 생각해 내면 알려주십시오. :)
Ivan Yurchenko

그렇습니다.이 방법을 사용하여 임의의 자릿수 시퀀스를 호출하려고 생각했지만이 특정 int.Max 값의 경우 방법이 상당히 잘 작동합니다. 말했듯이 반복되는 숫자는 문제입니다. 실제로, 반복되는 순서 (예 : 2323)는 문제입니다. 2058과 같이 자체 교차하는 시퀀스는 그리기가 어렵습니다. 암기 기술을 사용하려면 몇 가지 정보를 기억해야합니다. 어떤 유형의 정보가 당신의 머리에 가장 잘 어울리는지는 개인 취향입니다.
jskroch

1
이것은 내가 핀 코드와 유사한 것을 기억하는 방법이지만 갑자기 컴퓨터에 입력하고 숫자 키패드가 수직으로 뒤집혀 있음을 알아야합니다. 그래서 그것은 약간의 도전입니다.
nibarius

텍사스 달라스에있는 누군가가 많은 이상한 전화를 받았으며 당신이 @IvanYurchenko를 비난 할 줄은 모른다.
Bob Stein

21

정수에 가장 쉬운 방법은 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 비트 이상을 사용하기 시작하면 일반적으로 나쁜 트레이드 오프가 아닙니다


21

먼저 47을 두 번 쓰고 ( 에이전트 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

그런 다음 곱셈 12에 의해 3(이다 에이전트 47의 수의 두 번째 숫자 있도록하기 위해 7당신이 필요를, 7 - 4 = 3첫 번째 이쌍 오른쪽 마지막 쌍의 슬롯에 결과를 넣어)

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에서 더 생각할 수 있습니다. 경우 양수 한계보다 절대 값 이 .

몇 번 연습하면 교수형에 처할 수 있습니다!


"포지티브 한계보다 절대 값이 1 더 많았습니다".
Navin

20

2GB

(답변에 대한 최소 길이가 있습니까?)


18
GiB가 아니어야합니까?
Jouke van der Maas

9
@JoukevanderMaas-실제로 4B 여야합니다.
Ted Hopp

1
그렇기 때문에 32 비트 컴퓨터에서 가질 수있는 RAM의 한계는 4GB입니다.
Serj Sagan

3
4GB의 값은 부호없는 정수로 정확합니다. 부호있는 정수가 있다면, 가능한 최대 값을 얻기 위해 분명히 2로 나누어야합니다.
SwissCoder

3
32 비트에는 사용자 프로세스 용으로 2GB의 메모리 공간이, 커널 용으로 2GB가 있습니다. 커널에 1GB 만 예약되도록 구성 할 수 있습니다
Rune

15

.NET 가정-

Console.WriteLine(Int32.MaxValue);

15

ASCII 테이블 을 아는 것으로 마음에 들지 않으면 MaxInt:
!GH6G = 21 47 48 36 47


이 답변을 썼을 때 GH6G가 너무 많은 Google 조회수를 가지고 있다는 것을 몰랐으며 이제는 이것을 직접 사용했습니다 :-)
Mark Hurd

15

기억하는 가장 좋은 규칙은 다음과 같습니다 :
21 (매직 넘버!)
47 (그냥 기억)
48 (순차!)
36 (21 + 15, 두 매직!)
47 다시

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


14

기억하는 가장 쉬운 방법은 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;
}

14

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

하지만 다시 코드를 완성했습니다.

우리가 정말로 외워야 할 것은 Int3<period>M<enter> 비주얼 스튜디오에서 입력 할 수있는 6 자에 불과합니다.

최신 정보 어떤 이유로 나는 downvoted했다. 내가 생각할 수있는 유일한 이유는 그들이 내 첫 진술을 이해하지 못했기 때문입니다.

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


2
그러나 중요한 것은 입력 해야하는 문자 수가 아니라 메모하는 방법입니다. Iwannagohome보다 메모하는 것이 더 쉽다고 확신 298347829합니다. 그러나 -1의 이유는 없습니다.
glglgl 17

3
그것보다 작을 수도 있습니다. "imv"<tab> <tab> 아마도 자신의 최대 값 스 니펫을 만드십시오.
BradleyDotNET

4
문자 !=키 스트로크. 이 가난한 .Net 사용자에게는 in+ .+ ma+ Return입니다.
Michael-Clay Shirky는 어디에 있습니까

11

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 비트를 사용하는 부호없는 int의 경우 40 억으로 다시 두 배가됩니다. 물론 오차 계수는 커질수록 높아지지만 정확한 값을 기억할 필요는 없습니다 (필요한 경우 미리 정의 된 상수를 사용해야합니다). 근사값은 무언가가 넘쳐 넘칠 위험이있을 때 알기에 충분합니다.


10
오프 토픽 : 2 ^ 4 = 4 ^ 2, 따라서 지수는 쉼표입니다!
Adam Liss

10
@ Pier-OlivierThibault 아니오, 항상 사용합니다! 이제 모든 수학이 왜 잘못 나오는지 알아야합니다. 아마도 곱셈 오류와 관련이 있습니다. 어쨌든 안녕!
Doorknob

9

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

먼 사바나 분기 옵티머스 트리오 사십 구십 구로

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

7

무슨 소리 야? 그것이 2 ^ 32라는 것을 기억하기에 충분히 쉬워야합니다. 규칙이 해당 숫자의 값을 기억하도록하려면 일반적으로 이진수와 십진수를 변환하는 편리한 규칙이 있습니다.

2 ^ 10 ~ 1000

이것은 2 ^ 20 ~ 1,000,000을 의미합니다

2 ^ 30 ~ 1,000,000,000

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

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


7
그러나 그것은 2 ^ 32가 아닙니다-그것은 (2 ^ 31) -1입니다
Steve Folly

6

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

5

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

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

+2147483647에서 -2147483648

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

+9223372036854775807 ~ -9223372036854775808

그리고 왜이 숫자를 기억하고 싶어? 코드에서 사용하려면? Int32.MaxValue 또는 Int32.MinValue는 항상 .net 코어 내에서 정적 값이므로 코드로 새 int를 만드는 것보다 사용 속도가 빠르므로 항상 코드에서 Int32.MaxValue 또는 Int32.MinValue를 사용해야합니다.

내 진술 :이 숫자를 기억으로 알고 있다면 .. 과시하고 있습니다!


2
대부분의 최신 컴퓨터는 "2 칭찬"형식으로 숫자를 저장합니다. 가장 높은 (낮지 않은) 비트가 부호입니다. 두 가지 구성으로 깔끔한 점은 -ve 숫자는 CPU의 자연스러운 오버플로 규칙에 의해 처리된다는 것입니다. 즉, 0xFF는 8 비트 -1이며 0x01 (+1)에 추가하면 0x100이됩니다. 8에서 0x00 이상의 비트를 자르면 답이 있습니다.
Tom Leys

5

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

전화 패드로 인코딩을 해제하거나 종이에 직접 적을 수 있습니다.

"21 IQ ITEM 47"을 기억하기 위해, "Hitman : Codename 47에는 21 개의 미션이 있으며, 이는 각각 IQ ITEM 자체입니다".

또는 "IQ가 높고 입안의 물건을 좋아하지 않기 때문에 매일 21:47에 치아를 청소합니다."


무슨 소리 야 de-encoded with any phone pad?
mcExchange
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.