문제
내가 기억하지 않을 수 있습니다.야 메모리 규칙이 있습니다.
해결책
그것은 2,147,483,647.가장 쉬운 방법은 그것을 기억하는가를 통해 귀.
다른 팁
가 올바른 답을 생각할 수 있는 Int32.MaxValue
.
당신이 생각하는 경우 값이 너무 열심히 기억에 기초 10,시 2:1111111111111111111111111111111
는 경우에 당신을 기억할 수 있는 전체 파이 번호가 다음 번호 당신이 찾고있는 위치에 1,867,996,680 까 1,867,996,689 소수 자릿수의 Pi
숫자 문서 2,147,483,647 에 나타나 1,867,996,680 소수 자릿수의 Pi.3.14......86181221809936452346214748364710527835665425671614...
그것은 10 자리 숫자로,그래서 그것의 전화번호(고 가정하고 당신은 미국에서).214-748-3647.지 않을 호출하는 것이 좋습니다.
보다는 생각으로 하나의 큰 숫자도 그것을 파괴하고 관련 아이디어를 예를 들어:
- 2 최고 스누커 break(최대 휴식 147)
- 4 년(48 개월)
- 3 년(36 개월)
- 4 년(48 개월)
위의 적용에 가장 큰 부정적인 번호적인 마이너스 하나입니다.
어쩌면 위의 고장을 더 이상 없을 것입니다 당신을 위해 기억에 남는(그것은 거의 흥미로운 것은 이것!), 그러나 희망할 수 있는 몇 가지 아이디어를 제공합니다.
가장 큰 음성(32 비트)값:-2147483648
(1 << 31)
가장 큰 양(32 비트)값:서 2,147,483,647
~(1 << 31)
니모닉:"술에 취해 일명 horny"
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
어쨌든,이 regex(그것은 결정하는 경우 문자열이 포함되 음수가 아닌 정수수는 형태로도 보다 큰 Int32.MaxValue)
[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]
어쩌면 그것은 도움이 될 것이 당신을 기억합니다.
그게 내가 기억 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)
지금 당신이 있어서 2,147,483,647.
도움이 되기를 바랍어 비트입니다.
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 max)2^30(약 1 억원)배 2^1(2),또는 약 2 억원입니다.2^32 2^30*2^2 또는 약 4 억.이 방법의 근사치는 정확도 충분히 밖으로 약 2^64(는 오류 성장하는 약 15%).
필요할 경우 정확한 대답해야 합를 끌어 당기 계산기입니다.
편리한 단어 맞추는 능력 approximations:
- 2^16~=64 천//uint16
- 2^32~=4 억//uint32,IPv4,unixtime
- 2^64~=16 농장(aka16 억 수십억 또는 16 만 조)//uint64,"bigint"
- 2^128~=256 농장,농장(aka256 조 조)//IPv6,GUID
그냥 되는 건 어 계산기와 형식에서"7FFFFFFF"hex 모드로 전환하는 구분해서 사용하는 경우가 있습니다
2147483647.
그 2.1 * 10^9
.없음을 알아야 합 정확한 2^{31} - 1 = 2,147,483,647
.
C
당신이 그것을 찾을 수 있습니다 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
당신이 얻을 수있는 Java,너무:
System.out.println(Integer.MAX_VALUE);
그러나 유지 하는 마음에 자바의 정수를 항상 서명했다.
Python2
파이썬은 임의의 정밀도 정수입니다.하지만에서는 Python2,그들은 매핑 C 의 정수입니다.그래서 당신은 작업을 수행 할 수 있습니다:
import sys
sys.maxint
>>> 2147483647
sys.maxint + 1
>>> 2147483648L
그래서 Python 스위치 long
면 정수 얻을 보다 더 큰 2^31 -1
여기에 대한 기억을 기억하는 2**31,빼을 얻을 수있는 최대의 정수 값을 사용할 수 있습니다.
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**31.그것은 너무 쉽게 계산하는 필요에 따라 사용 또는 일정한 또는 추정 2G.
32 비트를,하나에 대한 기호,31 의 비트 정보:
2^31 - 1 = 2147483647
왜 -1?
기 때문에 첫째로,그래서 가장 큰입니다 수 뺀.
수은 2^31 그러나 가장 큰 수 없습 2147483648(2^31)기 때문에 우리가 횟수는 0,1.
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
만,그것은 32 비트이며 따라서 저장할 수 있습 2^32 다른 값입니다.의 절반은 사람들이 부정적이다.
이 솔루션은 2,147,483,647
최저가 -2,147,483,648.
(반비례 관계가 있는 것 하나 더 부정적인 값입니다.)
이 시점에서,내가 말하는 가장 쉬운 기억을 입력하는 것입니다."stackoverflow.com" TAB "최대 int32"으로 Chrome.
가 재귀-->stack overflow 농담에서 어딘가에 있을 것 이다.나는 그냥하지 않는 괴상하다.
론,고객께서는 농담,당신은 정말이 찾고 유용한 메모리 규칙이 있는 한 나는 항상 사용하여 기억하기 위한 큰 숫자입니다.
당신이 당신의 번호를 부분으로서 3-4 숫자로 기억하고 그들을 시각적으로 사용하여 프로젝션 휴대폰에 키보드입니다.의 표시에 그림:
당신이 볼 수 있듯이,지금부터 당신이 기억해야 3 양,2 들처럼 보이는 테트리스 L 고 하나처럼 보이는 눈금.는 것보다 훨씬 쉽게 기억 10 자리 숫자입니다.
필요할 때를 기억하는 번호를 기억양,상상/에 보이는 전화 키보드 및 프로젝트 모니다.아마 처음에 해야 합드 하지만 그 후에 그냥 조금의 연습,기억할 것이라는 숫자가에서 왼쪽 상단 오른쪽 아래 그래서 당신이 할 수있을 것이 단순히 상상에서 그것을 당신의 머리입니다.
그냥 당신이 기억하는 방향으로 모양의 자리의 숫자가 각각형(예를 들어,에서 2,147,483,647 를 들어 우리는 4 자리 테 L3-digit L).
이 기술을 사용할 수 있습을 쉽게 기억하는 모든 중요한 숫자(예를 들어,내가 기억 내 16 자리의 신용 카드 번호 등등).
을 할 수있는 가장 쉬운 방법에 대해 이 정수를 사용하여 진수,제공되는이 같은 것이 없다 Int.maxInt().그 이유는 이:
부호 없는 최대값
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
이것은 어떻게 일하는가?이것은 매우 비슷하는 바이너리 전략,그리고 각각의 진수 자리 정확하게 4 비트입니다.또한,많은 컴파일러 지원 hex 보다 더 많은 지원 바이너리입니다.
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...안전 육지만,그것은 쉽게 충분히 시도 7F80 고 그냥 그들을 인쇄를 확인하려면 화면 하나입니다.
0x7FFF+0x0001=0x8000,그래서 당신의 손실은 단 하나의 번호,사용 0x7F...일반적으로 아닙니다 나쁜 거래에 대한 더 많은 신뢰할 수 있는 코드,특히 시작하면 사용하는 32 비트 이상
먼저 작성 47 두 번,(당신 에이전트 47,right?), 유지하는 공간으로 다음과 같(각 대시는 슬롯이 한 자리.첫번째 2 개의 슬롯,다음 4)
--47----47
가 생각할 12
손에 있기 때문에(12=십).하여 번식 4
, 먼저 자리의 에이전트 47 의 숫자,즉 47
, 고,그 결과를 오른쪽 첫번째 페어미
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
다음을 곱하기 12
by 3
(하기 위해서 두 번째 자리의 에이전트 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 더 절대값 보다 긍정적인 제한.
연 몇 번,당신이 그것의 묘리를 터득!
2GB
(최소한의 길이 대답을 얻어야 하는가?)
당신이 알고있는 일이 당신의 ASCII 테이블 마음으로지 MaxInt
:
!GH6G = 21 47 48 36 47
가장 좋은 규칙은 그것을 기억하는가:
21 (마법수!)
47 (단지 그것을 기억)
48 (순차!)
36 (21+15,두 마법!)
47 시
또한 그는 쉽게 기억 5 쌍 10 자리 숫자가 있습니다.
가정.NET-
Console.WriteLine(Int32.MaxValue);
흥미롭게도,Int32.MaxValue 가상의 문자보다 2,147,486,647.
하지만 그런 다음,다시 우리에게 있는 코드를 완료
그래서 나는 모두 우리가 정말 기억하는 Int3<period>M<enter>
, 는 6 개 문자를 입력 visual studio.
업데이트 을 닫힌 영역.유일한 이유는 나의 생각할 수 있는 것은 그들이 이해하지 못하는 내가 먼저 문을.
"Int32.MaxValue 은"대부분에서 14 문자를 입력합니다.2,147,486,647 소 10 13 일자 유형에 따라 넣은 경우에는 쉼표로 구분됩니다.
기억하는 가장 쉬운 방법은 보고서 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;
}
만 기억하는 2^(10*x)은 약 10^(3*x)-당신은 아마 이미 사용하는 이와 kb/kibibytes etc.는:
2^10 = 1024 ~= one thousand
2^20 = 1024^2 = 1048576 ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion
이후 int 사용하여 31bits(+~1 비트에 대한 등록하십시오),그 두 번 2^30 을 얻을 수의 약 2 억원입니다.한 unsigned int 사용 32 비트를,두 번 다시 4billion.에 오류가 요소가 높을수록 더 큰 당신의 과정,그러나 당신이 필요하지 않 정확한 값이 기억(당신이 그것을 필요로 하는 경우에,당신이 사용해야에 미리 정의한 상수 위해 어쨌든 그것).대략적인 값은 좋은 충분히 주의를 위해 뭔가 될 수 있는 위험을 넘쳐나고 있습니다.
이 방법이다 나는 그것을 기억하 2,147,483,647
멀리 사바나 분기 optimus 트리오 닭으로 변한 마흔 septenary
2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
당신은 무엇을 의미합니까?그것은 쉽게 해야 충분한 것을 기억 2^32.당신이 원하는 경우 원칙을 기억하는 값의 번호를 편리한 엄지손가락의 규칙은 변환하기위한 간에 바이너리고 소수점에서 일반적인:
2^10 ~ 1000
을 의미하는 2^20~1,000,000
2^30~1,000,000,000
두 배는(2^31)은 rounghly2billion,배는(2^32)4 억.
그것은 쉬운 방법은 대략적으로 모든 이진 번호입니다.10 규 바이너리된 3 세상을 지배 구분해서 사용하는 경우가 있습니다
물리학자 저는 그냥 라운드 2 억 (반 농담).기억하기 쉬운입니다!
Objective-C(iOS/os x)기억하고,이러한 매크로는:
#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