Mnemonik saya: 2 ^ 10 sangat dekat dengan 1000, jadi 2 ^ (3 * 10) adalah 1000 ^ 3 atau sekitar 1 miliar. Salah satu dari 32 bit digunakan untuk tanda, sehingga nilai maksimalnya hanya 2 ^ 31, yaitu sekitar dua kali jumlah yang Anda dapatkan untuk 2 ^ (3 * 10): 2 miliar.
16807
164
2147483647 tanpa koma.
Vern D.
20
Cukup gunakan: Integer.MAX_VALUEdi Jawa.
Tim
184
Jika Anda memiliki tato di wajah Anda, jangan lupa untuk membalikkannya sehingga terbaca dengan benar di cermin. Kalau tidak, Anda akan melihat 746.384.741,2 yang salah dan akan memalukan.
Larry S
127
2,147.483.647 = 0x7FFFFFFF, jika Anda ingin mengingatnya, gunakan saja hex.
roottraveller
493
Jawaban paling benar yang bisa saya pikirkan adalah Int32.MaxValue.
Sebelum ini ada, saya biasa mendefinisikan # INT32_MIN dan INT32_MAX di semua proyek saya.
WildJoe
45
@CamiloMartin Hai. Saya benci itu. Tidak ada lagi tempat untuk tato. Jelas, rangkaian iso-8859-1, dan Pi hingga 31415 desimal harus mendapatkan prioritas
sehe
3
Ketika Anda pemrograman: ya dalam 99% kasus. Tetapi Anda mungkin ingin tahu bahwa itu sekitar ~ 2 miliar untuk merencanakan pendekatan pemrograman atau ketika bekerja dengan data, meskipun jumlahnya sangat besar. :)
Andre Figueiredo
@sehe Bukankah latin1 / Windows 1252 sudah usang sekarang? Jika tidak bisa masuk dalam 7 byte ASCII, saya tidak berpikir itu layak mendapat tempat di memori utama. Maksudku ... semua halaman kode UNICODE agak berguna, tetapi lebih dari satu meg-skin-space sepertinya sia-sia. (Belum lagi masih belum termasuk mesin terbang deskriptif untuk "pageup / pagedown" atau "pagehome / pageend")
1
Properti ini mungkin merupakan saran yang bagus untuk menyebutkan nomor yang benar. Namun, saya tidak suka jawaban ini karena hanya menyebutkan cara yang tidak dapat dipercaya untuk menghentikan nilai dan tidak menyebutkan untuk bahasa pemrograman mana ini bekerja, baik ...
mozzbozz
439
Jika Anda berpikir nilainya terlalu sulit untuk diingat dalam basis 10, coba basis 2: 111111111111111111111111111111111
@Nick Whaley: Tidak, 1111111111111111111111111111111 adalah positif. 11111111111111111111111111111111 akan menjadi negatif :-)
Curd
58
Basis 16 lebih mudah lagi 7FFFFFFF
Nelson Galdeman Graziano
34
@Curd 11111111111111111111111111111111sebagai nomor basis-2 akan tetap positif (contoh negatif pada basis-2 adalah -1) . Urutan bit hanya negatif jika mewakili nomor komplemen 32-bit 2 :)
BlueRaja - Danny Pflughoeft
143
Yang paling mudah diingat adalah basis 2.147.483.647. Maka yang harus Anda ingat adalah 1.
big_tommy_7bb
82
@ tim_barber_7BB sebenarnya, ini 10.
fscheidl
317
jika Anda dapat mengingat seluruh nomor Pi, maka angka yang Anda cari ada di posisi 1.867.996.680 hingga 1.867.996.689 dari angka desimal Pi
String numerik 2147483647 muncul pada angka desimal Pi 1,867.996.680. 3.14 ...... 86181221809936452346 2147483647 10527835665425671614 ...
Anda tahu, ketika saya mulai membaca jawaban Anda, saya mengharapkan sesuatu yang praktis, seperti angka 20.
JqueryToAddNumbers
95
Ini sepertinya keren. Apakah Anda memiliki aturan memori lain yang perlu diingat 1,867.996.680? Saya merasa sulit untuk mengingat pada indeks mana untuk mulai mencari ....
Alderath
10
" jika Anda dapat mengingat seluruh nomor Pi ... " - tidak, Anda tidak bisa, itu tidak rasional {seperti yang mungkin satu atau dua posting dalam Tanya Jawab ini} 8-D
SlySven
10
@Alderath Saya biasanya mengingatnya sebagai 10 desimal dalam sqrt (2) mulai dari angka digit 380.630.713 ....
Henrik
2
@Alderath: String numerik 1867996680 muncul di angka desimal 380.630.713 ke Square dari 2.
Yair Halberstadt
290
Ini 10 digit, jadi anggap itu nomor telepon (dengan asumsi Anda berada di AS). 214-748-3647. Saya tidak merekomendasikan untuk menyebutnya.
Berbicara tentang mengingatnya sebagai nomor telepon, tampaknya mungkin ada beberapa spammer telepon yang menggunakannya: mrnumber.com/1-214-748-3647
Steven
8
"Tidak ada pertukaran" 748 "di Dallas. Nomor ini palsu." - dari halaman yang ditautkan oleh shambleh
Tarnay Kálmán
104
@ Seven Saya tidak berpikir mereka spammer, hanya orang yang secara tidak sengaja menyimpan nomor telepon sebagai INTganti VARCHARdi MySQL.
Zarel
8
Sudah mencoba menyebutnya. Itu berdering beberapa kali lalu pergi ke nada panggil kesalahan. = (
Krythic
172
Daripada menganggapnya sebagai satu angka besar, cobalah memecahnya dan mencari ide-ide terkait misalnya:
2 istirahat snooker maksimum (istirahat maksimum adalah 147)
4 tahun (48 bulan)
3 tahun (36 bulan)
4 tahun (48 bulan)
Hal di atas berlaku untuk angka negatif terbesar; positif adalah minus satu itu.
Mungkin uraian di atas tidak akan lebih berkesan bagi Anda (rasanya tidak mengasyikkan!), Tapi mudah-mudahan Anda dapat menemukan beberapa ide yang ada!
Saya memiliki mnemonik yang lebih baik: yang perlu Anda ingat adalah 2 dan 31, karena nampaknya tepat 2 ^ 31! Oh, tunggu ...
Tamas Czinege
28
@DrJokepu Saya tidak yakin tentang prioritas operator ... Apakah itu berarti 2^(31!)atau (2^31)!?
Alderath
1
@Lucio Perhatikan bahwa jawaban saya terkait pada contoh pertama dengan angka negatif terbesar yang berakhir pada 48, bukan 47
Luke Bennett
144
Nilai negatif (32bit) terbesar: -2147483648
(1 << 31)
Nilai positif (32bit) terbesar: 2147483647
~ (1 << 31)
Mnemonic: "mabuk AKA 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
Dunia yang paling sulit untuk diingat Mnemonic. Jika Anda dapat menghafal 0118 999 88199 9119 752 ... 3 Anda dapat menghafal ini.
BenM
11
@Rondles Saya pikir ini sebenarnya 7253 pada akhirnya.
Tim Tisdall
21
Nggak. Umur minum adalah 18 di sini ... Sepertinya saya tidak bisa menggunakan mnemonik ini, hidup saya hancur.
Joffrey
4
@Aaren Cordova Mereka dulu mengatakan stackoverflow tidak akan pernah lucu, tidak lebih dari sebuah situs tanya jawab, saya biasanya mengarahkan mereka ke jawaban ini. Hal ini hanya bisa dibuat di dalam pikiran jenius, maksud saya ini adalah Art.
Mohd Abdul Mujib
5
Bilangan bulat 32 bit negatif terbesar, atau 64 bit dalam hal ini, adalah -1.
Fred Mitchell
75
Pokoknya, ambil regex ini (menentukan apakah string berisi Integer non-negatif dalam bentuk desimal yang juga tidak lebih besar dari Int32.MaxValue)
Yang bagus! Saya pikir aturan 214 harus pi - 1. Juga topeng menunjukkan 68 daripada 64. =) Untuk penggemar penerbangan seperti saya, nilai 737 harus mudah diingat mengaitkannya dengan jet pesawat ukuran sedang Boeing.
Anda bisa melangkah lebih jauh dari itu. Jatuhkan desimal dan bandingkan pi dan 2 ^ 31-1. Dalam posisi yang sama Anda mendapatkan 141 vs 147, jadi digit terakhir hanya menjadi 7. Kemudian 592 vs 483, semua adalah satu digit dari satu sama lain. Dan 643 vs 647, itu yang menjadi 7 hal lagi.
Peter Cooper
@PeterCooper Altho desimal untuk pi dimulai dengan 1415926_5_35 (Perhatikan 5, bukan 4)
Moberg
15
Mnemonic saya adalah mengambil 4294967296 (yang mudah diingat) dan membaginya dengan 2
Jadi, 2 ^ 31 (masuk int max) adalah 2 ^ 30 (sekitar 1 miliar) kali 2 ^ 1 (2), atau sekitar 2 miliar. Dan 2 ^ 32 adalah 2 ^ 30 * 2 ^ 2 atau sekitar 4 miliar. Metode pendekatan ini cukup akurat bahkan sekitar 2 ^ 64 (di mana kesalahan tumbuh sekitar 15%).
Jika Anda membutuhkan jawaban yang tepat maka Anda harus menarik kalkulator.
Perkiraan kapasitas rata-rata yang praktis:
2 ^ 16 ~ = 64 ribu // uint16
2 ^ 32 ~ = 4 miliar // uint32, IPv4, unixtime
2 ^ 64 ~ = 16 quintillion (alias 16 miliar miliar atau 16 juta trilyun) // uint64, "bigint"
@Tidak, saya menghargai tautannya, tetapi jawaban Python saya adalah tentang "Python 2" (Saya menambahkan 2 pada judul bagian untuk membuatnya lebih jelas). Jadi jawaban saya tidak ketinggalan jaman. (Tapi Python 2, diakui, adalah)
Martin Thoma
35
Ini adalah mnemonic untuk mengingat 2 ** 31, kurangi satu untuk mendapatkan nilai integer maksimum.
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
Saya telah menggunakan kekuatan dua hingga 18 cukup sering untuk mengingatnya, tetapi bahkan saya belum repot-repot mengingat 2 ** 31. Terlalu mudah untuk menghitung sesuai kebutuhan atau menggunakan konstanta, atau memperkirakan sebagai 2G.
Ini memiliki 32 bit dan karenanya dapat menyimpan 2 ^ 32 nilai. Tidak kurang.
JB.
28
Nah, selain dari lelucon, jika Anda benar-benar mencari aturan memori yang berguna, ada satu yang selalu saya gunakan untuk mengingat angka besar.
Anda perlu memecah nomor Anda menjadi bagian-bagian dari 3-4 digit dan mengingatnya secara visual menggunakan proyeksi pada keyboard ponsel Anda. Lebih mudah ditampilkan pada gambar:
Seperti yang Anda lihat, mulai sekarang Anda hanya perlu mengingat 3 bentuk, 2 di antaranya tampak seperti Tetris L dan satu lagi terlihat seperti tanda centang . Yang pasti jauh lebih mudah daripada menghafal nomor 10 digit.
Ketika Anda perlu mengingat nomor hanya ingat bentuk, bayangkan / lihat pada keyboard ponsel dan proyeksikan bentuk di atasnya. Mungkin awalnya Anda harus melihat keyboard tetapi setelah sedikit latihan, Anda akan ingat bahwa angka-angka bergerak dari kiri atas ke kanan bawah sehingga Anda dapat membayangkannya di kepala Anda.
Pastikan Anda mengingat arah bentuk dan jumlah digit di setiap bentuk (misalnya, pada 2147483647 contoh, kami memiliki Tetris L 4 digit dan L 3 digit).
Anda dapat menggunakan teknik ini untuk dengan mudah mengingat angka penting (misalnya, saya ingat nomor kartu kredit 16 digit saya, dll.).
Ide yang rapi! Shape 1 memberi Anda 2147, Shape 2 memberi Anda 483, dan Shape 3 seharusnya memberi 647, tetapi seperti yang digambarkan, itu bisa ditafsirkan sebagai 6 5 47. Bagaimana saya tahu kapan harus memasukkan semua angka yang disilangkan (seperti dalam Bentuk 1 ) vs. kapan harus melewati beberapa (seperti pada Bentuk 3)? Anda juga harus mengingat bahwa bentuk masing-masing mengkodekan 4, 3, dan 3 digit. Atau Anda bisa menggambar Bentuk 3 dengan busur dari 6 ke 4 bukannya garis lurus.
jskroch
@ Quinch Ya, terutama untuk mengingat int. Max seharusnya tidak menjadi masalah karena Anda mungkin tahu itu sekitar 2 miliar sehingga memiliki 10 angka di dalamnya (dan itu berarti jika bentuk pertama memiliki 4 angka maka yang kedua dan ketiga bentuk memiliki 3 sesuai). Namun, itu poin yang bagus jika Anda ingin menggunakan pendekatan ini untuk nomor apa pun. Juga, ada angka yang sulit diingat menggunakan cara ini (yaitu 1112 atau sesuatu). Di sisi lain, seharusnya tidak sulit untuk mengingat nomor tersebut. Jadi saya katakan itu terserah Anda, beri tahu saya jika Anda menemukan sesuatu yang menarik untuk ini. :)
Ivan Yurchenko
Ya, saya berpikir tentang menggunakan metode ini untuk mengingat urutan angka yang berubah-ubah, tetapi untuk nilai int.Max khusus ini, metode Anda bekerja dengan cukup baik. Seperti yang Anda katakan, angka berulang adalah masalah. Bahkan, setiap urutan yang berulang (seperti 2323) adalah masalah. Urutan apa pun yang memotong sendiri (seperti 2058) sulit untuk menggambar. Setiap teknik menghafal mengharuskan Anda untuk mengingat beberapa informasi. Ini adalah preferensi pribadi jenis info apa yang paling melekat di kepala Anda.
jskroch
1
Ini adalah bagaimana saya mengingat kode pin dan sejenisnya, tetapi tiba-tiba Anda perlu mengetikkannya di komputer Anda dan menyadari bahwa numpad dibalik secara vertikal. Jadi itu sedikit tantangan.
nibarius
Seseorang di Dallas, Texas , telah menerima banyak panggilan telepon aneh dan tidak tahu bahwa Anda yang harus disalahkan @IvanYurchenko.
Bob Stein
21
Cara termudah untuk melakukan ini untuk bilangan bulat adalah dengan menggunakan heksadesimal, asalkan tidak ada sesuatu seperti Int.maxInt (). Alasannya adalah ini:
Bagaimana cara kerjanya? Ini sangat mirip dengan taktik biner, dan setiap digit hex tepat 4 bit. Juga, banyak kompiler mendukung hex jauh lebih baik daripada mereka mendukung biner.
F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000
Jadi 7F sama dengan 01111111 / 7FFF sama dengan 0111111111111111. Juga, jika Anda menggunakan ini untuk "konstanta gila-gilaan tinggi", 7F ... adalah hex aman, tetapi cukup mudah untuk mencoba 7F dan 80 dan hanya mencetaknya ke layar Anda untuk melihat yang mana itu.
0x7FFF + 0x0001 = 0x8000, jadi kerugian Anda hanya satu angka, jadi menggunakan 0x7F ... biasanya bukan tradeoff yang buruk untuk kode yang lebih andal, terutama sekali Anda mulai menggunakan 32-bit atau lebih
Pertama, tulis 47 dua kali, (Anda suka Agen 47 , kan?), Menjaga spasi seperti yang ditunjukkan (setiap tanda hubung adalah slot untuk satu digit. Pertama 2 slot, lalu 4)
--47----47
Pikirkan Anda ada 12di tangan (karena 12 = selusin). Lipat gandakan dengan 4, digit pertama nomor Agen 47, yaitu 47, dan tempatkan hasilnya di sebelah kanan pasangan pertama yang sudah Anda miliki
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
Kemudian kalikan 12dengan 3(untuk membuat digit kedua dari nomor Agen 47, yaitu 7, yang Anda butuhkan 7 - 4 = 3) dan letakkan hasilnya di sebelah kanan 2 pasangan pertama, slot pasangan terakhir
12 * 3 = 36
--47483647 <-- after placing 36 to the right of first two pairs
Terakhir, seret digit satu per satu dari tangan Anda mulai dari digit paling kanan (2 dalam hal ini) dan letakkan di slot kosong pertama yang Anda dapatkan
2-47483647 <-- after placing 2
2147483647 <-- after placing 1
Itu dia! Untuk batas negatif, Anda dapat menganggapnya sebagai 1 lebih dalam nilai absolut daripada batas positif.
Berlatihlah beberapa kali, dan Anda akan terbiasa!
Itulah sebabnya batas RAM yang dapat Anda miliki di komputer 32bit adalah 4GB
Serj Sagan
3
nilai 4GB benar dengan bilangan bulat yang tidak ditandatangani. jika Anda memiliki int yang sudah ditandatangani, Anda jelas perlu membaginya dengan 2 untuk mendapatkan nilai maksimal yang mungkin
SwissCoder
3
Dalam 32-bit ada 2GB cadangan ruang memori untuk proses pengguna, dan 2GB untuk kernel. Ini dapat dikonfigurasi sehingga kernel hanya memiliki 1 GB yang dipesan
// 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;
}
Menariknya, Int32.MaxValue memiliki lebih banyak karakter daripada 2.147.486.647.
Tapi sekali lagi, kita memang memiliki penyelesaian kode,
Jadi saya kira yang harus kita hafal adalah Int3<period>M<enter>, yang hanya 6 karakter untuk mengetik di studio visual.
UPDATE
Entah mengapa saya downvoted. Satu-satunya alasan yang dapat saya pikirkan adalah bahwa mereka tidak memahami pernyataan pertama saya.
"Int32.MaxValue" membutuhkan maksimal 14 karakter untuk mengetik. 2.147.486.647 membutuhkan 10 atau 13 karakter untuk diketik tergantung pada apakah Anda memasukkan koma atau tidak.
Tetapi yang penting bukanlah berapa banyak karakter yang harus Anda ketik, tetapi bagaimana cara mem-memo itu. Saya yakin Iwannagohomelebih mudah untuk memo daripada 298347829. Namun, tidak ada alasan untuk -1.
glglgl
3
Bisa jadi kurang dari itu, cukup buat cuplikan nilai maks Anda sendiri, "imv" <tab> <tab> mungkin?
BradleyDotNET
4
!=Keystrokes Karakter . Untuk pengguna .Net yang miskin ini, ini in+ .+ ma+ Return.
Michael - Di mana Clay Shirky
11
Ingatlah bahwa 2 ^ (10 * x) kira-kira 10 ^ (3 * x) - Anda mungkin sudah terbiasa dengan ini dengan kilobytes / kibibytes dll. Yaitu:
2^10 = 1024 ~= one thousand
2^20 = 1024^2 = 1048576 ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion
Karena int menggunakan 31 bit (+ ~ 1 bit untuk tanda), cukup gandakan 2 ^ 30 untuk mendapatkan sekitar 2 miliar. Untuk int unsigned menggunakan 32 bit, gandakan lagi untuk 4 miliar. Faktor kesalahan semakin tinggi semakin besar Anda pergi tentu saja, tetapi Anda tidak perlu nilai tepat dihafal (Jika Anda membutuhkannya, Anda harus menggunakan konstanta yang telah ditentukan sebelumnya untuk itu). Nilai perkiraannya cukup baik untuk diperhatikan ketika sesuatu mungkin hampir meluap.
Offtopic: 2 ^ 4 = 4 ^ 2, oleh karena itu eksponensial adalah komutatif!
Adam Liss
10
@ Pier-OlivierThibault tidak, saya menggunakannya sepanjang waktu! sekarang saya perlu mencari tahu mengapa semua matematika saya salah. mungkin ada hubungannya dengan kesalahan multiplikasi. ngomong-ngomong, selamat tinggal!
tckmn
9
ini adalah bagaimana saya melakukannya untuk mengingat 2.147.483.647
Untuk seperempat sabana jauh, optimus trio dipoles empat puluh september
2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
Apa maksudmu? Seharusnya cukup mudah untuk mengingat bahwa itu adalah 2 ^ 32. Jika Anda ingin aturan untuk menghafal nilai angka itu, aturan praktis praktis adalah untuk mengkonversi antara biner dan desimal secara umum:
2 ^ 10 ~ 1000
yang berarti 2 ^ 20 ~ 1.000.000
dan 2 ^ 30 ~ 1.000.000.000
Dua kali lipat (2 ^ 31) adalah 2 miliar, dan dua kali lipat lagi (2 ^ 32) adalah 4 miliar.
Ini cara mudah untuk mendapatkan perkiraan kasar dari angka biner apa pun. 10 nol dalam biner menjadi 3 nol dalam desimal.
Int32 berarti Anda memiliki 32 bit yang tersedia untuk menyimpan nomor Anda. Bit tertinggi adalah bit tanda, ini menunjukkan jika angka tersebut positif atau negatif. Jadi, Anda memiliki 2 ^ 31 bit untuk angka positif dan negatif.
Dengan nol menjadi angka positif Anda mendapatkan rentang logis dari (disebutkan sebelumnya)
+2147483647 hingga -2147483648
Jika menurut Anda itu kecil, gunakan Int64:
+9223372036854775807 hingga -9223372036854775808
Dan mengapa Anda ingin mengingat nomor ini? Untuk digunakan dalam kode Anda? Anda harus selalu menggunakan Int32.MaxValue atau Int32.MinValue dalam kode Anda karena ini adalah nilai statis (dalam inti .net) dan karenanya lebih cepat digunakan daripada membuat int baru dengan kode.
Pernyataan saya: jika tahu nomor ini berdasarkan memori .. Anda hanya pamer!
Sebagian besar komputer modern menyimpan angka dalam format "dua pujian". Bit tertinggi (bukan terendah) adalah tandanya. Yang rapi dengan kompos dua-duanya adalah bahwa -ve number ditangani oleh aturan overflow alami CPU. yaitu 0xFF adalah 8 bit -1, tambahkan ke 0x01 (+1) dan Anda mendapatkan 0x100. Potong bit di atas 8 hingga 0x00 dan Anda memiliki jawaban.
Tom Leys
5
Ingat ini: 21 IQ ITEM 47
Itu dapat di-encoded dengan pad ponsel apa pun, atau Anda bisa menuliskannya sendiri di atas kertas.
Untuk mengingat "21 IQ ITEM 47", saya akan pergi dengan "Hitman: Codename 47 memiliki 21 misi, yang masing-masing adalah ITEM IQ sendiri".
Atau "Saya membersihkan gigi pada 21:47 setiap hari, karena saya memiliki IQ tinggi dan tidak suka barang di mulut saya".
Jawaban:
Ini 2.147.483.647. Cara termudah untuk menghafalnya adalah melalui tato.
sumber
Integer.MAX_VALUE
di Jawa.Jawaban paling benar yang bisa saya pikirkan adalah
Int32.MaxValue
.sumber
Jika Anda berpikir nilainya terlalu sulit untuk diingat dalam basis 10, coba basis 2: 111111111111111111111111111111111
sumber
11111111111111111111111111111111
sebagai nomor basis-2 akan tetap positif (contoh negatif pada basis-2 adalah-1
) . Urutan bit hanya negatif jika mewakili nomor komplemen 32-bit 2 :)jika Anda dapat mengingat seluruh nomor Pi, maka angka yang Anda cari ada di posisi 1.867.996.680 hingga 1.867.996.689 dari angka desimal Pi
sumber: http://www.subidiom.com/pi/
sumber
Ini 10 digit, jadi anggap itu nomor telepon (dengan asumsi Anda berada di AS). 214-748-3647. Saya tidak merekomendasikan untuk menyebutnya.
sumber
INT
gantiVARCHAR
di MySQL.Daripada menganggapnya sebagai satu angka besar, cobalah memecahnya dan mencari ide-ide terkait misalnya:
Hal di atas berlaku untuk angka negatif terbesar; positif adalah minus satu itu.
Mungkin uraian di atas tidak akan lebih berkesan bagi Anda (rasanya tidak mengasyikkan!), Tapi mudah-mudahan Anda dapat menemukan beberapa ide yang ada!
sumber
2^(31!)
atau(2^31)!
?Nilai negatif (32bit) terbesar: -2147483648
(1 << 31)
Nilai positif (32bit) terbesar: 2147483647
~ (1 << 31)
Mnemonic: "mabuk AKA horny"
sumber
Pokoknya, ambil regex ini (menentukan apakah string berisi Integer non-negatif dalam bentuk desimal yang juga tidak lebih besar dari 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]
Mungkin itu akan membantu Anda mengingat.
sumber
2147483647
. Ini akan sangat membantu bagi OPItulah yang saya ingat
2147483647
:Tulis ini secara horizontal:
Sekarang Anda punya 2147483647.
Semoga ini bisa membantu setidaknya sedikit.
sumber
Jadi, 2 ^ 31 (masuk int max) adalah 2 ^ 30 (sekitar 1 miliar) kali 2 ^ 1 (2), atau sekitar 2 miliar. Dan 2 ^ 32 adalah 2 ^ 30 * 2 ^ 2 atau sekitar 4 miliar. Metode pendekatan ini cukup akurat bahkan sekitar 2 ^ 64 (di mana kesalahan tumbuh sekitar 15%).
Jika Anda membutuhkan jawaban yang tepat maka Anda harus menarik kalkulator.
Perkiraan kapasitas rata-rata yang praktis:
sumber
Ambil saja kalkulator yang layak dan ketik "7FFFFFFF" dalam mode hex, kemudian beralih ke desimal.
2147483647
sumber
Int32.MaxValue
/numeric_limits<int32_t>::max()
Ini tentang
2.1 * 10^9
. Tidak perlu tahu persisnya2^{31} - 1 = 2,147,483,647
.C
Anda dapat menemukannya di C seperti itu:
memberi (baik, tanpa
,
)C ++ 11
Jawa
Anda juga bisa mendapatkan ini dengan Java:
Tetapi perlu diingat bahwa Java integer selalu masuk.
Python 2
Python memiliki bilangan bulat presisi acak. Tetapi dalam Python 2, mereka dipetakan ke C integer. Jadi Anda bisa melakukan ini:
Jadi Python beralih ke
long
saat bilangan bulat menjadi lebih besar dari2^31 -1
sumber
Ini adalah mnemonic untuk mengingat 2 ** 31, kurangi satu untuk mendapatkan nilai integer maksimum.
a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9
Saya telah menggunakan kekuatan dua hingga 18 cukup sering untuk mengingatnya, tetapi bahkan saya belum repot-repot mengingat 2 ** 31. Terlalu mudah untuk menghitung sesuai kebutuhan atau menggunakan konstanta, atau memperkirakan sebagai 2G.
sumber
32 bit, satu untuk tanda, 31 bit informasi:
Kenapa -1?
Karena yang pertama adalah nol, jadi yang terbesar adalah hitungan minus .
EDIT untuk cantfindaname88
Hitungannya adalah 2 ^ 31 tetapi yang terbesar tidak mungkin 2147483648 (2 ^ 31) karena kita menghitung dari 0, bukan 1.
Penjelasan lain dengan hanya 3 bit: 1 untuk tanda, 2 untuk informasi
Di bawah semua nilai yang mungkin dengan 3 bit: (2 ^ 3 = 8 nilai)
sumber
Yah, ia memiliki 32 bit dan karenanya dapat menyimpan 2 ^ 32 nilai yang berbeda. Setengah dari mereka adalah negatif.
Solusinya adalah 2.147.483.647
Dan yang terendah adalah ,2.147.483.648.
(Perhatikan bahwa ada satu lagi nilai negatif.)
sumber
Nah, selain dari lelucon, jika Anda benar-benar mencari aturan memori yang berguna, ada satu yang selalu saya gunakan untuk mengingat angka besar.
Anda perlu memecah nomor Anda menjadi bagian-bagian dari 3-4 digit dan mengingatnya secara visual menggunakan proyeksi pada keyboard ponsel Anda. Lebih mudah ditampilkan pada gambar:
Seperti yang Anda lihat, mulai sekarang Anda hanya perlu mengingat 3 bentuk, 2 di antaranya tampak seperti Tetris L dan satu lagi terlihat seperti tanda centang . Yang pasti jauh lebih mudah daripada menghafal nomor 10 digit.
Ketika Anda perlu mengingat nomor hanya ingat bentuk, bayangkan / lihat pada keyboard ponsel dan proyeksikan bentuk di atasnya. Mungkin awalnya Anda harus melihat keyboard tetapi setelah sedikit latihan, Anda akan ingat bahwa angka-angka bergerak dari kiri atas ke kanan bawah sehingga Anda dapat membayangkannya di kepala Anda.
Pastikan Anda mengingat arah bentuk dan jumlah digit di setiap bentuk (misalnya, pada 2147483647 contoh, kami memiliki Tetris L 4 digit dan L 3 digit).
Anda dapat menggunakan teknik ini untuk dengan mudah mengingat angka penting (misalnya, saya ingat nomor kartu kredit 16 digit saya, dll.).
sumber
Cara termudah untuk melakukan ini untuk bilangan bulat adalah dengan menggunakan heksadesimal, asalkan tidak ada sesuatu seperti Int.maxInt (). Alasannya adalah ini:
Nilai maksimum unsigned
Nilai yang ditandatangani, menggunakan 7F sebagai nilai yang ditandatangani maks
Nilai yang ditandatangani, menggunakan 80 sebagai nilai yang ditandatangani maks
Bagaimana cara kerjanya? Ini sangat mirip dengan taktik biner, dan setiap digit hex tepat 4 bit. Juga, banyak kompiler mendukung hex jauh lebih baik daripada mereka mendukung biner.
Jadi 7F sama dengan 01111111 / 7FFF sama dengan 0111111111111111. Juga, jika Anda menggunakan ini untuk "konstanta gila-gilaan tinggi", 7F ... adalah hex aman, tetapi cukup mudah untuk mencoba 7F dan 80 dan hanya mencetaknya ke layar Anda untuk melihat yang mana itu.
0x7FFF + 0x0001 = 0x8000, jadi kerugian Anda hanya satu angka, jadi menggunakan 0x7F ... biasanya bukan tradeoff yang buruk untuk kode yang lebih andal, terutama sekali Anda mulai menggunakan 32-bit atau lebih
sumber
Pertama, tulis 47 dua kali, (Anda suka Agen 47 , kan?), Menjaga spasi seperti yang ditunjukkan (setiap tanda hubung adalah slot untuk satu digit. Pertama 2 slot, lalu 4)
Pikirkan Anda ada
12
di tangan (karena 12 = selusin). Lipat gandakan dengan4
, digit pertama nomor Agen 47, yaitu47
, dan tempatkan hasilnya di sebelah kanan pasangan pertama yang sudah Anda milikiKemudian kalikan
12
dengan3
(untuk membuat digit kedua dari nomor Agen 47, yaitu7
, yang Anda butuhkan7 - 4 = 3
) dan letakkan hasilnya di sebelah kanan 2 pasangan pertama, slot pasangan terakhirTerakhir, seret digit satu per satu dari tangan Anda mulai dari digit paling kanan (2 dalam hal ini) dan letakkan di slot kosong pertama yang Anda dapatkan
Itu dia! Untuk batas negatif, Anda dapat menganggapnya sebagai 1 lebih dalam nilai absolut daripada batas positif.
Berlatihlah beberapa kali, dan Anda akan terbiasa!
sumber
2GB
(apakah ada panjang minimum untuk jawaban?)
sumber
Dengan asumsi .NET -
sumber
Jika Anda mengetahui tabel ASCII dengan hati dan tidak
MaxInt
:!GH6G = 21 47 48 36 47
sumber
Aturan terbaik untuk mengingatnya adalah:
21 (angka ajaib!)
47 (ingat saja)
48 (berurutan!)
36 (21 + 15, keduanya sihir!)
47 lagi
Juga lebih mudah untuk mengingat 5 pasang daripada 10 digit.
sumber
Cara termudah untuk diingat adalah dengan melihatnya
std::numeric_limits< int >::max()
Misalnya ( dari MSDN ),
sumber
Menariknya, Int32.MaxValue memiliki lebih banyak karakter daripada 2.147.486.647.
Tapi sekali lagi, kita memang memiliki penyelesaian kode,
Jadi saya kira yang harus kita hafal adalah
Int3<period>M<enter>
, yang hanya 6 karakter untuk mengetik di studio visual.UPDATE Entah mengapa saya downvoted. Satu-satunya alasan yang dapat saya pikirkan adalah bahwa mereka tidak memahami pernyataan pertama saya.
"Int32.MaxValue" membutuhkan maksimal 14 karakter untuk mengetik. 2.147.486.647 membutuhkan 10 atau 13 karakter untuk diketik tergantung pada apakah Anda memasukkan koma atau tidak.
sumber
Iwannagohome
lebih mudah untuk memo daripada298347829
. Namun, tidak ada alasan untuk -1.!=
Keystrokes Karakter . Untuk pengguna .Net yang miskin ini, iniin
+.
+ma
+ Return.Ingatlah bahwa 2 ^ (10 * x) kira-kira 10 ^ (3 * x) - Anda mungkin sudah terbiasa dengan ini dengan kilobytes / kibibytes dll. Yaitu:
Karena int menggunakan 31 bit (+ ~ 1 bit untuk tanda), cukup gandakan 2 ^ 30 untuk mendapatkan sekitar 2 miliar. Untuk int unsigned menggunakan 32 bit, gandakan lagi untuk 4 miliar. Faktor kesalahan semakin tinggi semakin besar Anda pergi tentu saja, tetapi Anda tidak perlu nilai tepat dihafal (Jika Anda membutuhkannya, Anda harus menggunakan konstanta yang telah ditentukan sebelumnya untuk itu). Nilai perkiraannya cukup baik untuk diperhatikan ketika sesuatu mungkin hampir meluap.
sumber
ini adalah bagaimana saya melakukannya untuk mengingat 2.147.483.647
Untuk seperempat sabana jauh, optimus trio dipoles empat puluh september
sumber
Apa maksudmu? Seharusnya cukup mudah untuk mengingat bahwa itu adalah 2 ^ 32. Jika Anda ingin aturan untuk menghafal nilai angka itu, aturan praktis praktis adalah untuk mengkonversi antara biner dan desimal secara umum:
2 ^ 10 ~ 1000
yang berarti 2 ^ 20 ~ 1.000.000
dan 2 ^ 30 ~ 1.000.000.000
Dua kali lipat (2 ^ 31) adalah 2 miliar, dan dua kali lipat lagi (2 ^ 32) adalah 4 miliar.
Ini cara mudah untuk mendapatkan perkiraan kasar dari angka biner apa pun. 10 nol dalam biner menjadi 3 nol dalam desimal.
sumber
Di Objective-C (iOS & OSX), ingatlah makro ini:
sumber
Int32 berarti Anda memiliki 32 bit yang tersedia untuk menyimpan nomor Anda. Bit tertinggi adalah bit tanda, ini menunjukkan jika angka tersebut positif atau negatif. Jadi, Anda memiliki 2 ^ 31 bit untuk angka positif dan negatif.
Dengan nol menjadi angka positif Anda mendapatkan rentang logis dari (disebutkan sebelumnya)
+2147483647 hingga -2147483648
Jika menurut Anda itu kecil, gunakan Int64:
+9223372036854775807 hingga -9223372036854775808
Dan mengapa Anda ingin mengingat nomor ini? Untuk digunakan dalam kode Anda? Anda harus selalu menggunakan Int32.MaxValue atau Int32.MinValue dalam kode Anda karena ini adalah nilai statis (dalam inti .net) dan karenanya lebih cepat digunakan daripada membuat int baru dengan kode.
Pernyataan saya: jika tahu nomor ini berdasarkan memori .. Anda hanya pamer!
sumber
Ingat ini: 21 IQ ITEM 47
Itu dapat di-encoded dengan pad ponsel apa pun, atau Anda bisa menuliskannya sendiri di atas kertas.
Untuk mengingat "21 IQ ITEM 47", saya akan pergi dengan "Hitman: Codename 47 memiliki 21 misi, yang masing-masing adalah ITEM IQ sendiri".
Atau "Saya membersihkan gigi pada 21:47 setiap hari, karena saya memiliki IQ tinggi dan tidak suka barang di mulut saya".
sumber
de-encoded with any phone pad
?