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.