bez znaku: 2³²-1 = 4 · 1024³-1; podpisano: -2³¹ .. + 2³¹-1, ponieważ bit znaku jest najwyższym bitem. Naucz się 2⁰ = 1 do 2¹⁰ = 1024 i połącz. 1024 = 1k, 1024² = 1M, 1024³ = 1G
comonad
31
Ogólnie pamiętam, że co 3 bity są mniej więcej dziesiętne. To doprowadza mnie do właściwego rzędu wielkości: 32 bity to 10 cyfr.
Barmar
8
@ JoachimSauer z pewnością może pomóc w debugowaniu, jeśli nauczysz się przynajmniej rozpoznawać tego rodzaju liczby.
Dunaril
72
„jeśli dysk zapełni się, usunięcie wszystkich megabajtów zostanie zarchiwizowane” (2 litery, 1 litera, 4 litery, 7 liter, 4 litery, 8 liter, 3 litery, 6 liter, 4 litery, 7 liter)
Mój mnemoniczny: 2 ^ 10 jest bardzo bliski 1000, więc 2 ^ (3 * 10) to 1000 ^ 3 lub około 1 miliarda. Jeden z 32 bitów jest używany do znaku, więc maksymalna wartość to tak naprawdę tylko 2 ^ 31, czyli około dwa razy więcej niż 2 ^ (3 * 10): 2 miliardy.
16807
164
2147483647 bez przecinków.
Vern D.
20
Po prostu użyj: Integer.MAX_VALUEw Javie.
Tim
184
Jeśli dostaniesz tatuaż na twarzy, nie zapomnij go odwrócić, aby poprawnie odczytał się w lustrze. W przeciwnym razie zobaczysz 746 384,741,2, co jest złe i byłoby zawstydzające.
Larry S
127
2,147,483,647 = 0x7FFFFFFF, jeśli chcesz to zapamiętać, po prostu użyj heksa.
roottraveller,
493
Najbardziej poprawną odpowiedzią, jaką mogę wymyślić, jest Int32.MaxValue.
Wcześniej istniało #definicja INT32_MIN i INT32_MAX we wszystkich moich projektach.
WildJoe,
45
@CamiloMartin Hej. Nie podoba mi się to. Po prostu nie było już miejsca na tatuaże. Oczywiście zestaw znaków iso-8859-1 i Pi do 31415 miejsc po przecinku musiały uzyskać priorytet
patrz
3
Podczas programowania: tak w 99% przypadków. Ale możesz chcieć wiedzieć, że jest to około 2 miliardów w planowaniu metod programowania lub podczas pracy z danymi, chociaż jest to bardzo duża liczba. :)
Andre Figueiredo,
@sehe Czy latin1 / Windows 1252 nie jest już przestarzały? Jeśli nie mieści się w 7 bajtach ASCII, nie sądzę, że zasługuje na miejsce w pamięci głównej. Mam na myśli ... wszystkie strony kodowe UNICODE są trochę użyteczne, ale ponad megabajt skóry wydaje się marnotrawstwem. (Nie wspominając o tym, że wciąż nie zawiera glifów opisowych dla „pageup / pagedown” lub „pagehome / pageend”)
1
Ta właściwość może być dobrą radą oprócz podania prawidłowego numeru. Jednak nie podoba mi się ta odpowiedź, ponieważ wspomina tylko o niemożliwym do zniesienia sposobie wyniszczenia wartości i nie wspomina, dla których języków programowania to działa, albo ...
mozzbozz
439
Jeśli uważasz, że wartość jest zbyt trudna do zapamiętania w bazie 10, wypróbuj bazę 2: 1111111111111111111111111111111
@Nick Whaley: Nie, 1111111111111111111111111111111 jest pozytywny. 11111111111111111111111111111111 byłby negatywny :-)
Curd
58
Baza 16 jest jeszcze łatwiejsza 7FFFFFFF
Nelson Galdeman Graziano 30.04.2014
34
@ Curd 11111111111111111111111111111111jako liczba base-2 nadal byłaby dodatnia (przykład ujemny w base-2 byłby -1) . Ta sekwencja bitów jest ujemna tylko wtedy, gdy reprezentuje liczbę uzupełnień 32-bitowych 2 :)
BlueRaja - Danny Pflughoeft
143
Najłatwiejsza do zapamiętania baza to 2 147 483 647. Następnie wszystko, co musisz zapamiętać, to 1.
big_tommy_7bb
82
@ tim_barber_7BB faktycznie, jest 10.
fscheidl
317
jeśli pamiętasz cały numer Pi, to liczba, której szukasz, znajduje się w pozycji 1 867 996 680 do 1 867 996 689 cyfr dziesiętnych Pi
Ciąg liczbowy 2147483647 pojawia się na 1 867 996 680 cyfrach dziesiętnych liczby Pi. 3,14 ...... 86181221809936452346 2147483647 10527835665425671614 ...
Mówiąc o zapamiętywaniu go jako numeru telefonu, wydaje się, że mogą go używać spamerzy telefoniczni: mrnumber.com/1-214-748-3647
Steven
8
„W Dallas nie ma wymiany„ 748 ”. Ten numer jest fałszywy.” - ze strony połączonej przez shambleh
Tarnay Kálmán
104
@Steven Nie sądzę, aby byli spamerami, a jedynie osobami, które przypadkowo zapisały numer telefonu INTzamiast VARCHARw MySQL.
Zarel
8
Próbowałem to nazwać. Zadzwonił kilka razy, a następnie przeszedł na sygnał wybierania błędu. = (
Krythic
172
Zamiast myśleć o tym jak o jednej dużej liczbie, spróbuj go rozbić i poszukaj powiązanych pomysłów, np .:
2 maksymalne przerwy w snookerze (maksymalna przerwa to 147)
4 lata (48 miesięcy)
3 lata (36 miesięcy)
4 lata (48 miesięcy)
Powyższe dotyczy największej liczby ujemnej; pozytywne jest to, że minus jeden.
Być może powyższy podział nie będzie już dla ciebie niezapomniany (to nie jest ekscytujące!), Ale mam nadzieję, że uda Ci się wymyślić kilka pomysłów, które są!
To jedno z najbardziej skomplikowanych urządzeń pneumatycznych, jakie widziałem. Imponujący.
Ben Hoffstein,
9
Heh, tacy jak Derren Brown faktycznie popierają takie podejście - dzielenie liczb na coś losowego, ale co jest bardziej niezapomniane niż tylko mnóstwo
Luke Bennett,
19
Mam lepszy mnemonik: wszystko, co musisz pamiętać, to 2 i 31, ponieważ najwyraźniej dokładnie 2 ^ 31! Och, czekaj ...
Tamas Czinege
28
@DrJokepu Nie jestem pewien, czy operator ma pierwszeństwo ... Czy to oznacza, 2^(31!)czy (2^31)!?
Alderath
1
@Lucio Zauważ, że moja odpowiedź dotyczy w pierwszej kolejności największej liczby ujemnej, która kończy się na 48, a nie 47
Luke Bennett
144
Największa wartość ujemna (32 bity): -2147483648
(1 << 31)
Największa wartość dodatnia (32 bity): 2147483647
~ (1 << 31)
Mnemonik: „pijany AKA napalony”
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
Najtrudniejsze do zapamiętania światy Mnemoniczne. Jeśli potrafisz zapamiętać 0118 999 88199 9119 752 ... 3 możesz to zapamiętać.
BenM
11
@Rondles Myślę, że na końcu jest to 7253.
Tim Tisdall
21
Nie. Wiek picia wynosi tutaj 18 lat ... Wydaje się, że nie mogę użyć tego mnemonika, moje życie jest zrujnowane.
Joffrey,
4
@Aaren Cordova Mówili, że przepełnienie stosu nigdy nie będzie śmieszne, nie będzie niczym więcej niż stroną z pytaniami i odpowiedziami, ogólnie wskazuję im na tę odpowiedź. Ta rzecz może być stworzona tylko w genialnym umyśle, to znaczy to jest Sztuka.
Mohd Abdul Mujib
5
Największa ujemna 32-bitowa liczba całkowita, lub 64-bitowa, to -1.
Fred Mitchell,
75
W każdym razie weź to wyrażenie regularne (określa, czy ciąg zawiera nieujemną liczbę całkowitą w postaci dziesiętnej, która również nie jest większa niż Int32.MaxValue)
Niezłe! Myślę, że reguła 214 powinna być pi - 1. Również maska pokazuje 68 zamiast 64. =) Dla miłośników lotnictwa, takich jak ja, wartość 737 powinna być łatwa do zapamiętania, kojarząc ją ze średnim samolotem odrzutowym Boeinga.
Możesz pójść dalej. Upuść przecinek i porównaj pi i 2 ^ 31-1. Na tych samych pozycjach otrzymujesz 141 vs 147, więc ostatnia cyfra staje się po prostu 7. Następnie 592 vs 483, wszystkie są od siebie oddalone o jedną cyfrę. I 643 vs 647, to znowu staje się 7.
Peter Cooper
@PeterCooper Altho ułamki dziesiętne dla pi zaczynają się od 1415926_5_35 (Uwaga 5, a nie 4)
Moberg
15
Mój mnemonik to wziąć 4294967296 (co jest łatwe do zapamiętania) i podzielić przez 2
Zatem 2 ^ 31 (podpisane int max) to 2 ^ 30 (około 1 miliard) razy 2 ^ 1 (2) lub około 2 miliardów. A 2 ^ 32 to 2 ^ 30 * 2 ^ 2 lub około 4 miliardów. Ta metoda aproksymacji jest wystarczająco dokładna nawet do około 2 ^ 64 (gdzie błąd rośnie do około 15%).
Jeśli potrzebujesz dokładnej odpowiedzi, powinieneś pobrać kalkulator.
Przydatne przybliżone pojemności dostosowane do słów:
2 ^ 16 ~ = 64 tysiące // uint16
2 ^ 32 ~ = 4 miliardy // uint32, IPv4, unixtime
2 ^ 64 ~ = 16 kwintylionów (czyli 16 miliardów lub 16 milionów bilionów) // uint64, „bigint”
@ NOhs Doceniam link, ale moja odpowiedź w Pythonie dotyczy „Python 2” (dodaję 2 do tytułu sekcji, aby było bardziej jasne). Więc moja odpowiedź nie jest nieaktualna. (Ale prawda jest, że Python 2)
Martin Thoma
35
Oto mnemonik do zapamiętywania 2 ** 31, odejmij jeden, aby uzyskać maksymalną wartość całkowitą.
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
Używałem mocy dwóch do 18 osób wystarczająco często, aby je zapamiętać, ale nawet nie zawracałem sobie głowy zapamiętywaniem 2 ** 31. Zbyt łatwo jest obliczyć w razie potrzeby lub użyć stałej lub oszacować jako 2G.
Ma 32 bity i dlatego może przechowywać 2 ^ 32 wartości. Nie mniej.
JB.
28
Cóż, oprócz żartów, jeśli naprawdę szukasz użytecznej reguły pamięci, jest taka, której zawsze używam do zapamiętywania dużych liczb.
Musisz podzielić swój numer na części z 3-4 cyfr i zapamiętać je wizualnie za pomocą projekcji na klawiaturze telefonu komórkowego. Łatwiej jest pokazać na zdjęciu:
Jak widać, odtąd musisz pamiętać tylko 3 kształty, 2 z nich wyglądają jak Tetris L, a jeden przypomina tyknięcie . Co jest zdecydowanie łatwiejsze niż zapamiętanie 10-cyfrowej liczby.
Kiedy potrzebujesz przywołać liczbę, po prostu przywołaj kształty, wyobraź sobie / spójrz na klawiaturę telefonu i wyświetl kształty na niej. Być może początkowo będziesz musiał spojrzeć na klawiaturę, ale po odrobinie praktyki pamiętasz, że liczby zmieniają się od lewej do prawej, a więc od prawej do prawej, więc będziesz mógł sobie to wyobrazić.
Upewnij się tylko, że pamiętasz kierunek kształtów i liczbę cyfr w każdym kształcie (na przykład w przykładzie 2147483647 mamy 4-cyfrowy Tetris L i 3-cyfrowy L).
Możesz użyć tej techniki do łatwego zapamiętania ważnych liczb (na przykład zapamiętałem mój 16-cyfrowy numer karty kredytowej itp.).
Świetny pomysł! Kształt 1 daje 2147, Kształt 2 daje 483, a Kształt 3 ma dawać 647, ale po narysowaniu można go interpretować jako 6 5 47. Skąd mam wiedzieć, kiedy uwzględnić wszystkie przekreślone liczby (jak w Kształcie 1 ) a kiedy pomijać niektóre (jak w Shape 3)? Musisz także zapamiętać, że kształty kodują odpowiednio 4, 3 i 3 cyfry. Lub możesz narysować Kształt 3 za pomocą łuku od 6 do 4 zamiast linii prostej.
jskroch
@Squinch Cóż, szczególnie dla zapamiętywania int. Maxa nie powinno to stanowić problemu, ponieważ możesz wiedzieć, że jest to około 2 miliardów, więc zawiera 10 liczb (a to oznacza, że jeśli pierwszy kształt ma 4 liczby, to drugi i trzeci kształty mają odpowiednio 3). Jest to jednak dobry punkt, jeśli chcesz zastosować to podejście do dowolnej liczby. Są też liczby trudne do zapamiętania w ten sposób (np. 1112 lub coś w tym rodzaju). Z drugiej strony i tak nie powinno być trudno zapamiętać taką liczbę. Powiedziałbym, że to zależy od ciebie, daj mi znać, jeśli wpadniesz na coś interesującego. :)
Ivan Yurchenko
Tak, zastanawiałem się nad zastosowaniem tej metody do przywołania dowolnej sekwencji cyfr, ale dla tej konkretnej wartości int.Max twoja metoda działa całkiem dobrze. Jak powiedziałeś, powtarzające się cyfry stanowią problem. W rzeczywistości każda powtarzająca się sekwencja (taka jak 2323) stanowi problem. Jakakolwiek sekwencja, która się przecina (np. 2058) jest trudna do narysowania. Każda technika zapamiętywania wymaga zapamiętania kilku informacji. Indywidualne preferencje najlepiej nadają się do zapamiętania.
jskroch
1
W ten sposób pamiętam kody PIN i tym podobne, ale nagle musisz wpisać go na komputerze i zdać sobie sprawę, że numpad jest odwrócony w pionie. To trochę wyzwanie.
nibarius
Ktoś w Dallas w Teksasie odebrał wiele dziwnych połączeń telefonicznych i nie ma pojęcia, że jesteś winien @IvanYurchenko.
Bob Stein,
21
Najłatwiejszym sposobem na zrobienie tego dla liczb całkowitych jest użycie wartości szesnastkowej, pod warunkiem, że nie ma czegoś takiego jak Int.maxInt (). Powód jest następujący:
Jak to działa? Jest to bardzo podobne do taktyki binarnej, a każda cyfra szesnastkowa ma dokładnie 4 bity. Ponadto wiele kompilatorów obsługuje hex znacznie lepiej niż obsługuje pliki binarne.
F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000
Więc 7F jest równy 01111111 / 7FFF jest równy 0111111111111111. Ponadto, jeśli używasz tego dla „niesamowicie wysokiej stałej”, 7F ... jest bezpiecznym hexem, ale łatwo wypróbować 7F i 80 i po prostu je wydrukować na ekranie, aby zobaczyć, który to jest.
0x7FFF + 0x0001 = 0x8000, więc twoja strata to tylko jedna liczba, więc użycie 0x7F ... zwykle nie jest złym kompromisem dla bardziej niezawodnego kodu, szczególnie gdy zaczniesz używać 32-bitów lub więcej
Najpierw napisz 47 dwukrotnie (lubisz Agenta 47 , prawda?), Zachowując spacje jak pokazano (każda kreska to miejsce na jedną cyfrę. Najpierw 2 miejsca, potem 4)
--47----47
Myślę, że masz 12pod ręką (bo 12 = tuzin). Pomnóż go przez 4pierwszą cyfrę numeru Agenta 47, tj. 47I umieść wynik po prawej stronie pierwszej pary, którą już masz
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
Następnie pomnóż 12przez 3(aby utworzyć drugą cyfrę numeru Agenta 47, czyli 7potrzebujesz 7 - 4 = 3) i umieść wynik na prawo od pierwszych 2 par, ostatniego miejsca na parę
12 * 3 = 36
--47483647 <-- after placing 36 to the right of first two pairs
Na koniec przeciągnij cyfry jeden po drugim, zaczynając od cyfry najbardziej po prawej (w tym przypadku 2) i umieść je w pierwszym pustym polu, który otrzymasz
2-47483647 <-- after placing 2
2147483647 <-- after placing 1
Masz to! W przypadku limitu ujemnego można uznać to za 1 wartość bezwzględną więcej niż limit dodatni.
Dlatego limit pamięci RAM na komputerze 32-bitowym wynosi 4 GB
Serj Sagan
3
wartość 4 GB jest poprawna z liczbami całkowitymi bez znaku. jeśli masz podpisaną int, oczywiście musisz podzielić przez 2, aby uzyskać maksymalną możliwą wartość
SwissCoder
3
W wersji 32-bitowej jest 2 GB rezerwy pamięci dla procesu użytkownika i 2 GB dla jądra. Można go skonfigurować tak, aby jądro miało zarezerwowane tylko 1 GB
// 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;
}
Co ciekawe, Int32.MaxValue ma więcej znaków niż 2 147 486 647.
Ale z drugiej strony mamy uzupełnianie kodu,
Więc chyba wszystko, co naprawdę musimy zapamiętać, to Int3<period>M<enter> , to tylko 6 znaków do wpisania w studio wizualnym.
AKTUALIZACJA
Z jakiegoś powodu zostałem odrzucony. Jedynym powodem, dla którego mogę wymyślić, jest to, że nie zrozumieli mojego pierwszego stwierdzenia.
„Int32.MaxValue” wymaga co najwyżej 14 znaków. 2 147 486 647 wymaga wpisania 10 lub 13 znaków, w zależności od tego, czy wstawisz przecinki, czy nie.
Liczy się jednak nie tyle znaków, ile trzeba wpisać, ale sposób ich zapamiętania. Jestem pewien, że Iwannagohomełatwiej jest zapamiętać niż 298347829. Jednak nie ma powodu do -1.
glglgl
3
Może to być mniej, po prostu utwórz własny fragment wartości maksymalnej, być może „imv” <tab> <tab>?
BradleyDotNET
4
!=Klawisze znaków . Dla tego biednego użytkownika .Net to in+ .+ ma+ Return.
Michael - Where's Clay Shirky
11
Pamiętaj tylko, że 2 ^ (10 * x) to około 10 ^ (3 * x) - prawdopodobnie już jesteś przyzwyczajony do tego z kilobajtami / kibibajtami itp. To znaczy:
2^10 = 1024 ~= one thousand
2^20 = 1024^2 = 1048576 ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion
Ponieważ int używa 31 bitów (+ ~ 1 bit na znak), wystarczy podwoić 2 ^ 30, aby uzyskać około 2 miliardów. W przypadku znaku bez znaku używającego 32 bitów ponownie dwukrotnie dla 4 miliardów. Współczynnik błędu rośnie wraz ze wzrostem, oczywiście, ale nie potrzebujesz zapamiętanej dokładnej wartości (jeśli jej potrzebujesz, i tak powinieneś użyć wcześniej zdefiniowanej stałej). Przybliżona wartość jest wystarczająca do zauważenia, kiedy coś może być niebezpiecznie bliskie przepełnienia.
Offtopic: 2 ^ 4 = 4 ^ 2, dlatego potęgowanie jest przemienne!
Adam Liss,
10
@ Pier-OlivierThibault nie, używam go cały czas! teraz muszę dowiedzieć się, dlaczego cała moja matematyka wychodzi źle. prawdopodobnie ma to coś wspólnego z błędami mnożenia. w każdym razie, pa!
Klamka
9
tak właśnie robię, aby zapamiętać 2 147 483 647
Do odległego trio sawanny ćwierćwiecznika trio przeklęło czterdzieści Sepptenary
2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
Co masz na myśli? Należy pamiętać, że jest to 2 ^ 32. Jeśli chcesz, aby reguła zapamiętywała wartość tej liczby, przydatna jest praktyczna reguła do konwersji między cyframi binarnymi i dziesiętnymi:
2 ^ 10 ~ 1000
co oznacza 2 ^ 20 ~ 1 000 000
oraz 2 ^ 30 ~ 1 000 000 000
Dwukrotność tego (2 ^ 31) to mniej więcej 2 miliardy, a podwojenie tego (2 ^ 32) to 4 miliardy.
To łatwy sposób, aby uzyskać przybliżone oszacowanie dowolnej liczby binarnej. 10 zer w formacie binarnym staje się 3 zerami w systemie dziesiętnym.
Int32 oznacza, że masz 32 bity dostępne do przechowywania swojego numeru. Najwyższy bit to bit znaku, który wskazuje, czy liczba jest dodatnia czy ujemna. Masz więc 2 ^ 31 bitów na liczby dodatnie i ujemne.
Gdy zero jest liczbą dodatnią, otrzymujesz logiczny zakres (wspomniany wcześniej)
+2147483647 do -2147483648
Jeśli uważasz, że to za małe, użyj Int64:
+9223372036854775807 do -9223372036854775808
I dlaczego, do diabła, chcesz zapamiętać ten numer? Do wykorzystania w kodzie? Zawsze powinieneś używać Int32.MaxValue lub Int32.MinValue w swoim kodzie, ponieważ są to wartości statyczne (w rdzeniu .net) i dlatego są szybsze w użyciu niż tworzenie nowej int z kodem.
Moje oświadczenie: jeśli znasz ten numer z pamięci ... po prostu się popisujesz!
Większość współczesnych komputerów przechowuje liczby w formacie „komplement dwóch”. Najwyższym (nie najniższym) bitem jest znak. Przy składaniu dwójki ciekawą rzeczą jest to, że -ve liczby są obsługiwane przez naturalne reguły przepełnienia procesora. tzn. 0xFF to 8 bitów -1, dodaj to do 0x01 (+1), a otrzymasz 0x100. Obetnij bity powyżej 8 do 0x00, a otrzymasz odpowiedź.
Tom Leys,
5
Pamiętaj o tym: 21 IQ POZYCJA 47
Można go odkodować za pomocą dowolnej podkładki telefonicznej lub możesz po prostu zapisać sobie na papierze.
Aby zapamiętać „21 IQ ITEM 47”, wybrałbym „Hitman: Codename 47 miał 21 misji, z których każda była IEM ITEM”.
Lub „Czyszczę zęby codziennie o 21:47, ponieważ mam wysokie IQ i nie lubię przedmiotów w ustach”.
Odpowiedzi:
Ma 2 147 483 647. Najłatwiejszym sposobem na zapamiętanie tego jest tatuaż.
źródło
Integer.MAX_VALUE
w Javie.Najbardziej poprawną odpowiedzią, jaką mogę wymyślić, jest
Int32.MaxValue
.źródło
Jeśli uważasz, że wartość jest zbyt trudna do zapamiętania w bazie 10, wypróbuj bazę 2: 1111111111111111111111111111111
źródło
11111111111111111111111111111111
jako liczba base-2 nadal byłaby dodatnia (przykład ujemny w base-2 byłby-1
) . Ta sekwencja bitów jest ujemna tylko wtedy, gdy reprezentuje liczbę uzupełnień 32-bitowych 2 :)jeśli pamiętasz cały numer Pi, to liczba, której szukasz, znajduje się w pozycji 1 867 996 680 do 1 867 996 689 cyfr dziesiętnych Pi
źródło: http://www.subidiom.com/pi/
źródło
To 10 cyfr, więc udawaj, że to numer telefonu (zakładając, że jesteś w USA). 214–748–3647. Nie polecam tego nazywać.
źródło
INT
zamiastVARCHAR
w MySQL.Zamiast myśleć o tym jak o jednej dużej liczbie, spróbuj go rozbić i poszukaj powiązanych pomysłów, np .:
Powyższe dotyczy największej liczby ujemnej; pozytywne jest to, że minus jeden.
Być może powyższy podział nie będzie już dla ciebie niezapomniany (to nie jest ekscytujące!), Ale mam nadzieję, że uda Ci się wymyślić kilka pomysłów, które są!
źródło
2^(31!)
czy(2^31)!
?Największa wartość ujemna (32 bity): -2147483648
(1 << 31)
Największa wartość dodatnia (32 bity): 2147483647
~ (1 << 31)
Mnemonik: „pijany AKA napalony”
źródło
W każdym razie weź to wyrażenie regularne (określa, czy ciąg zawiera nieujemną liczbę całkowitą w postaci dziesiętnej, która również nie jest większa niż 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]
Może pomoże ci to zapamiętać.
źródło
2147483647
. Byłoby to bardzo pomocne dla OPTak zapamiętałem
2147483647
:Napisz je poziomo:
Teraz masz 2147483647.
Mam nadzieję, że to pomoże choć trochę.
źródło
Zatem 2 ^ 31 (podpisane int max) to 2 ^ 30 (około 1 miliard) razy 2 ^ 1 (2) lub około 2 miliardów. A 2 ^ 32 to 2 ^ 30 * 2 ^ 2 lub około 4 miliardów. Ta metoda aproksymacji jest wystarczająco dokładna nawet do około 2 ^ 64 (gdzie błąd rośnie do około 15%).
Jeśli potrzebujesz dokładnej odpowiedzi, powinieneś pobrać kalkulator.
Przydatne przybliżone pojemności dostosowane do słów:
źródło
Wystarczy wziąć dowolny kalkulator i wpisać „7FFFFFFF” w trybie szesnastkowym, a następnie przełączyć na tryb dziesiętny.
2147483647.
źródło
Int32.MaxValue
/numeric_limits<int32_t>::max()
Chodzi o to
2.1 * 10^9
. Nie musisz dokładnie znać2^{31} - 1 = 2,147,483,647
.do
Możesz go znaleźć w C w ten sposób:
daje (no bez
,
)C ++ 11
Jawa
Możesz to również uzyskać w Javie:
Pamiętaj jednak, że liczby całkowite Java są zawsze podpisane.
Python 2
Python ma dowolne liczby całkowite precyzji. Ale w Pythonie 2 są one mapowane na liczby całkowite C. Możesz to zrobić:
Python przełącza się
long
wtedy, gdy liczba całkowita staje się większa niż2^31 -1
źródło
Oto mnemonik do zapamiętywania 2 ** 31, odejmij jeden, aby uzyskać maksymalną wartość całkowitą.
a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9
Używałem mocy dwóch do 18 osób wystarczająco często, aby je zapamiętać, ale nawet nie zawracałem sobie głowy zapamiętywaniem 2 ** 31. Zbyt łatwo jest obliczyć w razie potrzeby lub użyć stałej lub oszacować jako 2G.
źródło
32 bity, jeden na znak, 31 bitów informacji:
Dlaczego -1?
Ponieważ pierwszy wynosi zero, więc największa jest liczba minus jeden .
EDYCJA dla cantfindaname88
Liczba wynosi 2 ^ 31, ale największa nie może być 2147483648 (2 ^ 31), ponieważ liczymy od 0, a nie 1.
Kolejne wyjaśnienie zawierające tylko 3 bity: 1 dla znaku, 2 dla informacji
Poniżej wszystkich możliwych wartości z 3 bitami: (2 ^ 3 = 8 wartości)
źródło
Cóż, ma 32 bity, a zatem może przechowywać 2 ^ 32 różnych wartości. Połowa z nich jest negatywna.
Rozwiązaniem jest 2 147 483 647
A najniższy to -2 147 147 483 648.
(Zauważ, że jest jeszcze jedna wartość ujemna).
źródło
Cóż, oprócz żartów, jeśli naprawdę szukasz użytecznej reguły pamięci, jest taka, której zawsze używam do zapamiętywania dużych liczb.
Musisz podzielić swój numer na części z 3-4 cyfr i zapamiętać je wizualnie za pomocą projekcji na klawiaturze telefonu komórkowego. Łatwiej jest pokazać na zdjęciu:
Jak widać, odtąd musisz pamiętać tylko 3 kształty, 2 z nich wyglądają jak Tetris L, a jeden przypomina tyknięcie . Co jest zdecydowanie łatwiejsze niż zapamiętanie 10-cyfrowej liczby.
Kiedy potrzebujesz przywołać liczbę, po prostu przywołaj kształty, wyobraź sobie / spójrz na klawiaturę telefonu i wyświetl kształty na niej. Być może początkowo będziesz musiał spojrzeć na klawiaturę, ale po odrobinie praktyki pamiętasz, że liczby zmieniają się od lewej do prawej, a więc od prawej do prawej, więc będziesz mógł sobie to wyobrazić.
Upewnij się tylko, że pamiętasz kierunek kształtów i liczbę cyfr w każdym kształcie (na przykład w przykładzie 2147483647 mamy 4-cyfrowy Tetris L i 3-cyfrowy L).
Możesz użyć tej techniki do łatwego zapamiętania ważnych liczb (na przykład zapamiętałem mój 16-cyfrowy numer karty kredytowej itp.).
źródło
Najłatwiejszym sposobem na zrobienie tego dla liczb całkowitych jest użycie wartości szesnastkowej, pod warunkiem, że nie ma czegoś takiego jak Int.maxInt (). Powód jest następujący:
Maksymalna wartość bez znaku
Podpisane wartości, używając 7F jako maksymalnej wartości podpisanej
Podpisane wartości, przy użyciu 80 jako maksymalnej podpisanej wartości
Jak to działa? Jest to bardzo podobne do taktyki binarnej, a każda cyfra szesnastkowa ma dokładnie 4 bity. Ponadto wiele kompilatorów obsługuje hex znacznie lepiej niż obsługuje pliki binarne.
Więc 7F jest równy 01111111 / 7FFF jest równy 0111111111111111. Ponadto, jeśli używasz tego dla „niesamowicie wysokiej stałej”, 7F ... jest bezpiecznym hexem, ale łatwo wypróbować 7F i 80 i po prostu je wydrukować na ekranie, aby zobaczyć, który to jest.
0x7FFF + 0x0001 = 0x8000, więc twoja strata to tylko jedna liczba, więc użycie 0x7F ... zwykle nie jest złym kompromisem dla bardziej niezawodnego kodu, szczególnie gdy zaczniesz używać 32-bitów lub więcej
źródło
Najpierw napisz 47 dwukrotnie (lubisz Agenta 47 , prawda?), Zachowując spacje jak pokazano (każda kreska to miejsce na jedną cyfrę. Najpierw 2 miejsca, potem 4)
Myślę, że masz
12
pod ręką (bo 12 = tuzin). Pomnóż go przez4
pierwszą cyfrę numeru Agenta 47, tj.47
I umieść wynik po prawej stronie pierwszej pary, którą już maszNastępnie pomnóż
12
przez3
(aby utworzyć drugą cyfrę numeru Agenta 47, czyli7
potrzebujesz7 - 4 = 3
) i umieść wynik na prawo od pierwszych 2 par, ostatniego miejsca na paręNa koniec przeciągnij cyfry jeden po drugim, zaczynając od cyfry najbardziej po prawej (w tym przypadku 2) i umieść je w pierwszym pustym polu, który otrzymasz
Masz to! W przypadku limitu ujemnego można uznać to za 1 wartość bezwzględną więcej niż limit dodatni.
Poćwicz kilka razy, a zrozumiesz!
źródło
2 GB
(czy istnieje minimalna długość odpowiedzi?)
źródło
Zakładając .NET -
źródło
Jeśli zdarzy ci się, że znasz tablicę ASCII na pamięć, a nie
MaxInt
:!GH6G = 21 47 48 36 47
źródło
Najlepszą zasadą do zapamiętania jest:
21 (magiczna liczba!)
47 (pamiętaj tylko)
48 (sekwencyjne!)
36 (21 + 15, obie magie!)
47 ponownie
Łatwiej jest również zapamiętać 5 par niż 10 cyfr.
źródło
Najłatwiejszym sposobem na zapamiętanie jest spojrzenie
std::numeric_limits< int >::max()
Na przykład ( z MSDN )
źródło
Co ciekawe, Int32.MaxValue ma więcej znaków niż 2 147 486 647.
Ale z drugiej strony mamy uzupełnianie kodu,
Więc chyba wszystko, co naprawdę musimy zapamiętać, to
Int3<period>M<enter>
, to tylko 6 znaków do wpisania w studio wizualnym.AKTUALIZACJA Z jakiegoś powodu zostałem odrzucony. Jedynym powodem, dla którego mogę wymyślić, jest to, że nie zrozumieli mojego pierwszego stwierdzenia.
„Int32.MaxValue” wymaga co najwyżej 14 znaków. 2 147 486 647 wymaga wpisania 10 lub 13 znaków, w zależności od tego, czy wstawisz przecinki, czy nie.
źródło
Iwannagohome
łatwiej jest zapamiętać niż298347829
. Jednak nie ma powodu do -1.!=
Klawisze znaków . Dla tego biednego użytkownika .Net toin
+.
+ma
+ Return.Pamiętaj tylko, że 2 ^ (10 * x) to około 10 ^ (3 * x) - prawdopodobnie już jesteś przyzwyczajony do tego z kilobajtami / kibibajtami itp. To znaczy:
Ponieważ int używa 31 bitów (+ ~ 1 bit na znak), wystarczy podwoić 2 ^ 30, aby uzyskać około 2 miliardów. W przypadku znaku bez znaku używającego 32 bitów ponownie dwukrotnie dla 4 miliardów. Współczynnik błędu rośnie wraz ze wzrostem, oczywiście, ale nie potrzebujesz zapamiętanej dokładnej wartości (jeśli jej potrzebujesz, i tak powinieneś użyć wcześniej zdefiniowanej stałej). Przybliżona wartość jest wystarczająca do zauważenia, kiedy coś może być niebezpiecznie bliskie przepełnienia.
źródło
tak właśnie robię, aby zapamiętać 2 147 483 647
Do odległego trio sawanny ćwierćwiecznika trio przeklęło czterdzieści Sepptenary
źródło
Co masz na myśli? Należy pamiętać, że jest to 2 ^ 32. Jeśli chcesz, aby reguła zapamiętywała wartość tej liczby, przydatna jest praktyczna reguła do konwersji między cyframi binarnymi i dziesiętnymi:
2 ^ 10 ~ 1000
co oznacza 2 ^ 20 ~ 1 000 000
oraz 2 ^ 30 ~ 1 000 000 000
Dwukrotność tego (2 ^ 31) to mniej więcej 2 miliardy, a podwojenie tego (2 ^ 32) to 4 miliardy.
To łatwy sposób, aby uzyskać przybliżone oszacowanie dowolnej liczby binarnej. 10 zer w formacie binarnym staje się 3 zerami w systemie dziesiętnym.
źródło
W Objective-C (iOS i OSX) pamiętaj tylko te makra:
źródło
Int32 oznacza, że masz 32 bity dostępne do przechowywania swojego numeru. Najwyższy bit to bit znaku, który wskazuje, czy liczba jest dodatnia czy ujemna. Masz więc 2 ^ 31 bitów na liczby dodatnie i ujemne.
Gdy zero jest liczbą dodatnią, otrzymujesz logiczny zakres (wspomniany wcześniej)
+2147483647 do -2147483648
Jeśli uważasz, że to za małe, użyj Int64:
+9223372036854775807 do -9223372036854775808
I dlaczego, do diabła, chcesz zapamiętać ten numer? Do wykorzystania w kodzie? Zawsze powinieneś używać Int32.MaxValue lub Int32.MinValue w swoim kodzie, ponieważ są to wartości statyczne (w rdzeniu .net) i dlatego są szybsze w użyciu niż tworzenie nowej int z kodem.
Moje oświadczenie: jeśli znasz ten numer z pamięci ... po prostu się popisujesz!
źródło
Pamiętaj o tym: 21 IQ POZYCJA 47
Można go odkodować za pomocą dowolnej podkładki telefonicznej lub możesz po prostu zapisać sobie na papierze.
Aby zapamiętać „21 IQ ITEM 47”, wybrałbym „Hitman: Codename 47 miał 21 misji, z których każda była IEM ITEM”.
Lub „Czyszczę zęby codziennie o 21:47, ponieważ mam wysokie IQ i nie lubię przedmiotów w ustach”.
źródło
de-encoded with any phone pad
?