Lebih
Apa nilai maksimum untuk int32?
Aku tak pernah bisa mengingat nomor. Aku butuh memori aturan.
1383
45
Aku tak pernah bisa mengingat nomor. Aku butuh memori aturan.
It's 2,147,483,647. Cara termudah menghafal itu adalah melalui tato.
Jawaban yang paling benar yang bisa saya pikirkan adalah
Int32.MaxValue
.Jika anda berpikir nilai terlalu sulit untuk diingat dalam basis 10, cobalah dasar 2: 1111111111111111111111111111111
jika anda dapat mengingat seluruh Pi jumlah, maka jumlah yang anda cari di posisi 1,867,996,680 sampai 1,867,996,689 dari desimal digit dari Pi
sumber: http://www.subidiom.com/pi/
It's 10 digit, jadi berpura-pura itu's nomor telepon (dengan asumsi anda're di AS). 214-748-3647. Saya don't merekomendasikan menyebutnya.
Daripada menganggapnya sebagai satu jumlah yang besar, mencoba memecahnya dan mencari terkait ide-ide misalnya:
Di atas berlaku untuk negatif terbesar nomor; positif yang minus satu.
Mungkin atas kerusakan akan ada lebih berkesan untuk anda (itu's hampir tidak menarik itu!), tapi mudah-mudahan anda bisa datang dengan beberapa ide-ide yang ada!
Negatif terbesar (32bit) value : -2147483648
(1 << 31)
Terbesar positif (32bit) value : 2147483647
~(1 << 31)
Mnemonic: "mabuk ALIAS horny"
Pokoknya, ambil ini regex (menentukan jika string mengandung non-negatif bilangan Bulat 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 untuk mengingat.
Yang's bagaimana saya ingat
2147483647
:Menulis ini secara horizontal:
Sekarang anda've punya 2147483647.
Semoga ini bisa membantu setidaknya sedikit.
Jadi, 2^31 (signed 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. Ini metode pendekatan yang cukup akurat bahkan keluar untuk sekitar 2^64 (di mana kesalahan tumbuh sekitar 15%).
Jika anda membutuhkan jawaban yang tepat maka anda harus menarik sebuah kalkulator.
Berguna kata-blok perkiraan kapasitas:
Hanya mengambil yang layak kalkulator dan ketik "7FFFFFFF" dalam mode hex, kemudian beralih ke desimal.
2147483647.
It's tentang
2.1 * 10^9
. Tidak perlu tahu persis2^{31} - 1 = 2,147,483,647
.C
Anda dapat menemukannya dalam C seperti berikut:
memberikan (baik, tanpa
,
)C++ 11
Berikut ini's mnemonic untuk mengingat 2**31, kurangi satu untuk mendapatkan maksimum nilai integer.
a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9
I've menggunakan kekuatan dari dua hingga 18 cukup sering untuk mengingat mereka, tapi bahkan aku belum't repot-repot menghafal 2**31. It's terlalu mudah untuk menghitung sebagai dibutuhkan atau gunakan konstan, atau perkiraan seperti 2G.
32 bit, satu untuk tanda, 31 bit informasi:
Mengapa -1?
Karena yang pertama adalah nol, jadi yang terbesar adalah menghitung minus one.
Untuk MENGEDIT cantfindaname88
Count adalah 2^31 tetapi dapat't menjadi 2147483648 (2^31) karena kita menghitung dari 0, bukan 1.
Penjelasan lain dengan hanya 3 bit : 1. untuk tanda, 2 untuk informasi
Di bawah ini semua nilai yang mungkin dengan 3 bit: (2^3 = 8 nilai-nilai)
Nah, itu memiliki 32 bit dan karenanya dapat menyimpan 2^32 nilai-nilai yang berbeda. Setengah dari orang-orang yang negatif.
Solusinya adalah 2,147,483,647
Dan yang terendah adalah -2,147,483,648.
(Perhatikan bahwa ada satu lagi nilai negatif.)
Nah, selain dari lelucon, jika anda're benar-benar mencari berguna memori aturan, ada satu yang selalu saya gunakan untuk mengingat angka-angka besar.
Anda perlu untuk memecah nomor anda menjadi bagian dari 3-4 digit dan ingat mereka secara visual menggunakan proyeksi pada keyboard ponsel anda. It's mudah untuk menunjukkan pada gambar:
Seperti yang anda lihat, dari sekarang anda hanya perlu mengingat 3 bentuk, 2 dari mereka terlihat seperti Tetris L dan satu terlihat seperti kutu. Yang pasti jauh lebih mudah daripada menghafal 10 digit nomor.
Ketika anda perlu mengingat nomor hanya mengingat bentuk, bayangkan/terlihat pada keyboard ponsel dan proyek bentuk di atasnya. Mungkin awalnya anda'll harus melihat keyboard tapi setelah hanya sedikit latihan, anda'll ingat bahwa angka-angka yang bergerak dari kiri atas ke kanan bawah sehingga anda akan dapat dengan mudah membayangkan itu di kepala anda.
Hanya pastikan anda ingat arah bentuk dan jumlah digit pada masing-masing bentuk (misalnya, di 2147483647 contoh kita memiliki 4 digit Tetris L dan 3 digit L).
Anda dapat menggunakan teknik ini untuk dengan mudah mengingat semua nomor penting (misalnya, saya ingat saya 16 digit nomor kartu kredit dll.).
Pertama menulis 47 dua kali, (anda seperti [Agent 47][1], kan?), menjaga ruang-ruang seperti yang ditunjukkan (masing-masing dash adalah slot untuk satu digit. Pertama 2 slot, kemudian 4)
Pikir anda memiliki
12
di tangan (karena 12 = selusin). Kalikan dengan4
, digit pertama dari Agent 47's nomor, yaitu47
, dan menempatkan hasilnya ke kanan dari pasangan pertama anda sudah memilikiCara termudah untuk melakukan hal ini untuk bilangan bulat adalah dengan menggunakan heksadesimal, asalkan ada isn't sesuatu seperti Int.maxInt(). Alasannya adalah ini:
Max nilai-nilai unsigned
Menandatangani nilai-nilai, menggunakan 7F sebagai max menandatangani nilai
Menandatangani nilai-nilai, menggunakan 80 sebagai max menandatangani nilai
Bagaimana apakah ini bekerja? Ini sangat mirip dengan biner taktik, dan masing-masing hex digit adalah 4 bit. Juga, banyak kompiler dukungan hex jauh lebih baik dari mereka mendukung biner.
Jadi 7F adalah sama dengan 01111111 / 7FFF sama dengan 0111111111111111. Juga, jika anda menggunakan ini untuk "gila-gilaan tinggi konstan", 7F... aman hex, tapi itu's cukup mudah untuk mencoba 7F dan 80 dan mencetaknya ke layar anda untuk melihat yang satu ini.
0x7FFF + 0x0001 = 0x8000, sehingga anda kehilangan hanya satu angka, sehingga menggunakan 0x7F... biasanya isn't buruk tradeoff untuk lebih banyak kode yang dapat diandalkan, terutama setelah anda mulai menggunakan 32-bit atau lebih
2GB
(apakah ada minimum panjang untuk jawaban?)
Aturan terbaik untuk menghafal adalah: 21 (angka ajaib!) 47 (ingat itu) 48 (berurutan!) 36 (21 + 15, kedua magics!) 47 lagi
Juga lebih mudah untuk mengingat 5 pasang dari 10 digit.