Ce este valoarea maximă pentru un int32?

Nu-mi amintesc numărul. Am nevoie de o regulă de memorie.

Comentarii la întrebare (19)
Soluția

L's 2,147,483,647. Cel mai simplu mod de a memora este prin intermediul unui tatuaj.

Comentarii (24)

Cel mai corect răspuns la care mă pot gândi este Int32.MaxValue.

Comentarii (11)

Dacă credeți că valoarea este prea greu să-și amintească în baza 10, să încerce baza 2: 1111111111111111111111111111111

Comentarii (11)

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/

Comentarii (15)

L's 10 cifre, așa că poartă-l's un număr de telefon (presupunând că ai're în SUA). 214-748-3647. Eu nu't recomanda asteptare.

Comentarii (4)

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:

  • 2 maxim snooker pauze (o pauză maxim este de 147)
  • 4 ani (48 de luni)
  • 3 ani (36 de luni)
  • 4 ani (48 de luni)

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!

Comentarii (11)

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
Comentarii (8)

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.

Comentarii (1)

Ca's cum am amintit 2147483647:

  • 214 - pentru că 2.14 este de aproximativ pi-1
  • 48 = 6*8
  • 64 = 8*8

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.

Comentarii (4)
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:

  • 2^16 ~= 64 de mii de // uint16
  • 2^32 ~= 4 miliarde de // uint32, IPv4, unixtime
  • 2^64 ~= 16 quintillion (aka 16 miliarde de miliarde sau 16 milioane de trilioane) // uint64, "bigint"
  • 2^128 ~= 256 quintillion quintillion (aka 256 de trilioane de trilioane de trilioane) // IPv6, GUID
Comentarii (1)

Doar să ia orice calculator decent și de tip în "7FFFFFFF" în modul hex, apoi trece la zecimale.

2147483647.

Comentarii (6)

L's despre 2.1 * 10^9. Nu trebuie să știți exact2^{31} - 1 = 2,147,483,647.

C

Îl puteți găsi în C asa:

#include 
#include 

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

C++ 11


std::cout 
Comentarii (2)

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.

Comentarii (4)

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
Comentarii (1)

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ă.)

Comentarii (2)

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.).

Comentarii (5)

Primul scrie 47 de două ori, (te ca [Agent 47][1], 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 
Comentarii (1)

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

Comentarii (0)

2GB

(este acolo o lungime minimă pentru răspunsuri?)

Comentarii (7)

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.

Comentarii (0)