Nu-mi amintesc numărul. Am nevoie de o regulă de memorie.
L's 2,147,483,647. Cel mai simplu mod de a memora este prin intermediul unui tatuaj.
dacă vă puteți aminti întreaga numărul Pi, apoi numărul căutat este în poziția 1,867,996,680 până 1,867,996,689 de cifre zecimale ale lui Pi
string numeric 2147483647 apare la 1,867,996,680 cifre zecimale ale lui Pi. 3.14......86181221809936452346214748364710527835665425671614...
sursa: http://www.subidiom.com/pi/
Mai degrabă decât să cred că de ea ca un număr mare, încerca, de rupere-l în jos și caut asociat ideilor de exemplu:
Cele de mai sus se aplică pentru cel mai mare număr negativ; pozitiv este că, minus unul.
Poate defalcarea de mai sus nu va mai fi de neuitat pentru tine (it's greu de captivant este!), dar să sperăm că puteți veni cu unele idei care sunt!
Cea mai mare negativ (32 de biți) valoare : -2147483648
(1 << 31)
Cel mai mare pozitiv (32 de biți) valoare : 2147483647
~(1 << 31)
Mnemonic: "beat AKA excitat"
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
Oricum, ia acest regex (se determină dacă șirul conține un număr Întreg non-negativ în formă zecimală, care este, de asemenea, nu mai mare decât 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]
Poate ar ajuta să vă amintiți.
Ca's cum am amintit 2147483647
:
Scriu aceste orizontal:
214_48_64_
and insert:
^ ^ ^
7 3 7 - which is Boeing's airliner jet (thanks, sgorozco)
Acum'am 2147483647.
Sper că acest lucru ajută cel puțin un pic.
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
Deci, 2^31 (semnat int max) este 2^30 (aproximativ 1 miliarde de euro) ori 2^1 (2), sau aproximativ 2 miliarde de euro. Și 2^32 este 2^30 * 2^2 sau aproximativ 4 miliarde de euro. Această metodă de aproximare este suficient de precisă chiar și la aproximativ 2^64 (în cazul în care eroarea crește cu aproximativ 15%).
Dacă aveți nevoie de un răspuns exact atunci ar trebui să trageți în sus un calculator.
La îndemână cuvântul aliniat capacitate de aproximări:
L's despre 2.1 * 10^9
. Nu trebuie să știți exact2^{31} - 1 = 2,147,483,647
.
Îl puteți găsi în C asa:
#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);
}
dă (bine, fără ,
)
max int: 2,147,483,647
max unsigned int: 4,294,967,295
std::cout << std::numeric_limits<int>::max() << "\n";
std::cout << std::numeric_limits<unsigned int>::max() << "\n";
Puteți obține acest lucru cu Java, de asemenea:
System.out.println(Integer.MAX_VALUE);
Dar păstrează în minte faptul că Java numere întregi sunt întotdeauna semnat.
Python are precizie arbitrară de numere întregi. Dar în Python 2, acestea sunt mapate la C numere întregi. Astfel încât să puteți face acest lucru:
import sys
sys.maxint
>>> 2147483647
sys.maxint + 1
>>> 2147483648L
Deci Python switch-uri pentru a "lungi" atunci când întreg devine mai mare decât 2^31 -1`
Aici's un mnemonic pentru amintindu-2**31, scade unul pentru a obține maximum de valoare de tip întreg.
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
Am'am folosit puterile de două până la 18 suficient de des pentru a-i amintesc, dar chiar nu am't deranjat de memorare 2**31. L's prea ușor pentru a calcula cât este necesar sau de a folosi o constantă, sau se estimează ca 2G.
32 de biți, unul pentru semn, 31 de biți de informație:
2^31 - 1 = 2147483647
De ce -1?
Pentru că prima este zero, astfel încât cea mai mare este conta minus unu.
Pentru a EDITA cantfindaname88
Numărul este 2^31 dar cea mai mare poate't fi 2147483648 (2^31), pentru că am numărul de la 0, nu 1.
Rank 1 2 3 4 5 6 ... 2147483648
Number 0 1 2 3 4 5 ... 2147483647
O altă explicație cu doar 3 biți : 1 pentru semnul, 2 pentru informații
2^2 - 1 = 3
Mai jos toate valorile posibile cu 3 biți: (2^3 = 8 valori)
1: 100 ==> -4
2: 101 ==> -3
3: 110 ==> -2
4: 111 ==> -1
5: 000 ==> 0
6: 001 ==> 1
7: 010 ==> 2
8: 011 ==> 3
Ei bine, ea are 32 de biți și, prin urmare, poate stoca 2^32 valori diferite. Jumătate dintre acestea sunt negative.
Soluția este 2,147,483,647
Și cel mai mic este -2,147,483,648.
(Observați că mai este o valoare negativă.)
Ei bine, lăsând la o parte glumele, daca're într-adevăr în căutarea pentru un instrument util de memorie regulă, există una pe care o folosesc mereu pentru a-și aminti numere mari.
Aveți nevoie pentru a rupe în jos numărul tău în părți din 3-4 cifre și amintiți-vă-le vizual folosind proiecția pe tastatură telefon mobil. L's ușor pentru a arăta pe o imagine:
După cum puteți vedea, de acum pe trebuie doar să vă amintiți 3 forme, 2 dintre ele arata ca un Tetris L și arată ca o capusa. Care este cu siguranță mult mai ușor decât memorarea unui număr de 10 cifre.
Atunci când ai nevoie să amintim numărul amintesc doar forme, imagina/uita-te pe o tastatură de telefon și de proiect formele pe ea. Poate că inițial te'll trebuie să se uite la tastatură, dar după doar un pic de practică,'ll amintiți-vă că numerele sunt de la stânga-sus la dreapta-jos astfel încât să va fi capabil de a pur și simplu imaginează-ți asta în cap.
Doar asigurați-vă că vă amintiți direcția de forme și numărul de cifre în fiecare formă (de exemplu, în 2147483647 exemplu, avem un cod de 4 cifre Tetris L și 3 cifre din L).
Puteți folosi această tehnică pentru a aminti cu ușurință orice număr important (de exemplu, mi-am amintit mea de 16 cifre, numărul cardului de credit etc.).
Primul scrie 47 de două ori, (te ca Agent 47, nu?), păstrarea în spații așa cum se arată (fiecare dash este un slot pentru o singură cifră. Primele 2 sloturi, apoi 4)
--47----47
Cred că ai 12
în mână (pentru că 12 = o duzină). Se înmulțește prin 4
, prima cifră de Agent 47's numărul, de exemplu 47
, și puneți rezultatul de la dreptul de prima pereche aveți deja
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
Apoi înmulțiți 12 " cu "3
(în scopul de a face doua cifre de Agent 47's numărul, care este de "7", ai nevoie de 7 - 4 = 3`) și a pus rezultatul de la dreptul de primele 2 perechi, ultima pereche-slot
12 * 3 = 36
--47483647 <-- after placing 36 to the right of first two pairs
În cele din urmă trage cifrele una câte una la mână, începând de la dreapta-de cele mai multe cifre (2 în acest caz) și puneți-le în primul slot gol ai
2-47483647 <-- after placing 2
2147483647 <-- after placing 1
Nu-l ai! Pentru negative limită, vă puteți gândi la asta ca la 1 mai în valoare absolută decât pozitiv limita.
Exersați de câteva ori, și veți obține atarna de el!
Cel mai simplu mod de a face acest lucru pentru numere întregi este de a utiliza hexazecimal, cu condiția că nu e't ceva de genul Int.maxInt(). Motivul este acesta:
Max nesemnate valori
8-bit 0xFF
16-bit 0xFFFF
32-bit 0xFFFFFFFF
64-bit 0xFFFFFFFFFFFFFFFF
128-bit 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Semnat valori, folosind 7F ca max semnat valoare
8-bit 0x7F
16-bit 0x7FFF
32-bit 0x7FFFFFFF
64-bit 0x7FFFFFFFFFFFFFFF
Semnat valori, folosind 80 ca max semnat valoare
8-bit 0x80
16-bit 0x8000
32-bit 0x80000000
64-bit 0x8000000000000000
Cum face acest lucru? Acest lucru este foarte similar cu cel binar tactică, și fiecare hex cifre este exact 4 biți. De asemenea, o mulțime de compilatoare suport hex mult mai bine decât au suport binare.
F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000
Deci 7F este egal cu 01111111 / 7FFF este egal cu 0111111111111111. De asemenea, dacă utilizați acest lucru pentru "incredibil de mare constanta", 7F... e safe hex, dar's destul de ușor pentru a încerca 7F și 80 și doar să le imprimați pe ecran pentru a vedea care unul este.
0x7FFF + 0x0001 = 0x8000, deci pierderea este doar un număr, astfel încât folosind 0x7F... de obicei e't un rău compromis pentru mult mai fiabile, mai ales odată ce ați începe să utilizați-32-biți sau mai mult
Cea mai bună regulă pentru a memora este: 21 (număr magic!) 47 (amintiți-vă doar ea) 48 (secvențiale!) 36 (21 + 15, atât magia!) 47 din nou
De asemenea, este mai ușor să vă amintiți 5 perechi mult de 10 cifre.