não assinado: 2³²-1 = 4 · 1024³-1; assinado: -2³¹ .. + 2³¹-1, porque o bit de sinal é o bit mais alto. Apenas aprenda 2⁰ = 1 a 2¹⁰ = 1024 e combine. 1024 = 1k, 1024² = 1M, 1024³ = 1G
comonad 28/03
31
Eu geralmente lembro que a cada 3 bits é um dígito decimal. Isso me leva à ordem correta de magnitude: 32 bits são 10 dígitos.
Barmar
8
@JoachimSauer certamente pode ajudar na depuração se você aprender a reconhecer pelo menos esses tipos de números.
Dunaril
72
"se um disco ficar cheio, a exclusão de todos os mbytes será arquivada" (2 letras, 1 letra, 4 letras, 7 letras, 4 letras, 8 letras, 3 letras, 6 letras, 4 letras, 7 letras)
Meu mnemônico: 2 ^ 10 está muito próximo de 1000, então 2 ^ (3 * 10) é 1000 ^ 3 ou cerca de 1 bilhão. Um dos 32 bits é usado para sinal, então o valor máximo é realmente apenas 2 ^ 31, que é aproximadamente o dobro do valor obtido por 2 ^ (3 * 10): 2 bilhões.
16807
164
2147483647 sem vírgulas.
Vern D.
20
Simplesmente use: Integer.MAX_VALUEem Java.
Tim Tim
184
Se você fizer a tatuagem em seu rosto, não se esqueça de inverter a tatuagem para que fique correta no espelho. Caso contrário, você verá 746.384.741,2, o que está errado e seria embaraçoso.
Larry S
127
2.147.483.647 = 0x7FFFFFFF, se você quiser se lembrar, basta usar hex.
roottraveller
493
A resposta mais correta que consigo pensar é Int32.MaxValue.
Antes disso, eu costumava #define INT32_MIN e INT32_MAX em todos os meus projetos.
WildJoe 12/09
45
@CamiloMartin Hey. Eu me ressinto disso. Simplesmente não havia lugar para mais tatuagens. Obviamente, o conjunto de caracteres iso-8859-1 e decimais de Pi com 31415 tiveram que ter prioridade
veja
3
Quando você está programando: sim em 99% dos casos. Mas você pode querer saber que é algo como ~ 2 bilhões no planejamento de abordagens de programação ou ao trabalhar com dados, embora seja um número muito grande. :)
Andre Figueiredo
@sehe O latin1 / Windows 1252 não está obsoleto até agora? Se não puder caber nos 7 bytes do ASCII, acho que não merece um lugar na memória principal. Quero dizer ... todas as páginas de código do UNICODE são meio úteis, mas mais de um meg de espaço na pele parece um desperdício. (Sem mencionar que ainda não inclui glifos descritivos para "pageup / pagedown" ou "pagehome / pageend")
1
Essa propriedade pode ser um bom conselho além de mencionar o número correto. No entanto, eu não gosto de esta resposta, uma vez que apenas menciona uma maneira portável de dertermining o valor e não mencionar para os quais linguagens de programação este é obras, ou ...
mozzbozz
439
Se você acha que o valor é muito difícil de lembrar na base 10, tente a base 2: 1111111111111111111111111111111
@Nick Whaley: Não, 1111111111111111111111111111111 é positivo. 11111111111111111111111111111111 seria negativo :-)
Coalhada
58
Base 16 é ainda mais fácil 7FFFFFFF
Nelson Galdeman Graziano
34
@Curd 11111111111111111111111111111111como um número da base 2 ainda seria positivo (um exemplo negativo na base 2 seria -1) . Essa seqüência de bits só é negativo se representando número de complemento a 32-bit 2 de :)
BlueRaja - Danny Pflughoeft
143
Mais fácil de lembrar será a base 2.147.483.647. Então tudo que você tem que lembrar é 1.
big_tommy_7bb
82
@ tim_barber_7BB na verdade, é 10.
fscheidl
317
se você se lembra do número inteiro do Pi, o número que você está procurando está na posição 1.867.996.680 a 1.867.996.689 dos dígitos decimais de Pi
A sequência numérica 2147483647 aparece no dígito decimal 1.867.996.680 de Pi. 3,14 ...... 86181221809936452346 2147483647 10527835665425671614 ...
você sabe, quando comecei a ler sua resposta, esperava algo prático, como o 20º dígito.
JqueryToAddNumbers
95
Isso parece bem legal. Você tem outra regra de memória para se lembrar de 1.867.996.680? Acho que é difícil lembrar em qual índice para começar a procurar ....
Alderath
10
" se você consegue se lembrar de todo o número Pi ... " - não, você não consegue, é irracional {como são possivelmente uma ou duas postagens nesta
seção de
10
@Alderath I tipicamente lembrar que como os decimais em 10 sqrt (2) começando no número dígito 380630713 ....
Henrik
2
@Alderath: a string numérica 1867996680 aparece no dígito decimal 380.630.713 da raiz quadrada de 2.
Yair Halberstadt
290
São 10 dígitos, então finja que é um número de telefone (supondo que você esteja nos EUA). 214-748-3647. Eu não recomendo chamá-lo.
Eu tenho um mnemônico melhor: tudo o que você precisa lembrar são 2 e 31, pois aparentemente é exatamente 2 ^ 31! Oh, espere ...
Tamas Czinege
28
@DrJokepu Não tenho certeza sobre a precedência do operador ... Isso significa 2^(31!)ou (2^31)!?
Alderath
1
@Lucio Note que a minha resposta diz respeito, em primeira instância para o maior número negativo que termina em 48, não 47
Luke Bennett
144
Maior valor negativo (32 bits): -2147483648
(1 << 31)
Maior valor positivo (32 bits): 2147483647
~ (1 << 31)
Mnemônico: "bêbado AKA com tesão"
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
Os mundos mais difíceis de lembrar Mnemonic. Se você pode memorizar 0118 999 88199 9119 752 ... 3, pode memorizar isso.
BenM
11
@Rondles Acho que na verdade é 7253 no final.
Tim Tisdall
21
Não. A idade para beber é de 18 anos aqui ... Parece que não posso usar esse mnemônico, minha vida está arruinada.
precisa
4
@Aaren Cordova Eles costumavam dizer que o stackoverflow nunca seria engraçado, nada mais seria do que um site de perguntas e respostas, geralmente eu os indico para esta resposta. Essa coisa só pode ser criada dentro de uma mente genial, quero dizer, isso é arte.
Mohd Abdul Mujib
5
O maior número inteiro negativo de 32 bits, ou 64 bits, é -1.
Fred Mitchell
75
De qualquer forma, considere esse regex (ele determina se a sequência contém um número inteiro não negativo na forma decimal que também não é maior que Int32.MaxValue)
Agradável! Eu acho que a regra 214 deve ser pi - 1. Além disso, a máscara mostra 68 em vez de 64. =) Para os fãs de aviação como eu, é fácil lembrar o valor do 737 associando-o ao jato de médio porte da Boeing.
Você pode ir além disso. Largue o decimal e compare pi e 2 ^ 31-1. Nas mesmas posições, você obtém 141 x 147, então o último dígito se torna um 7. Em seguida, 592 vs 483, todos estão um dígito um do outro. E 643 vs 647, é que isso se torna uma coisa 7 novamente.
Peter Cooper
@PeterCooper Altho os decimais para começa pi com 1415926_5_35 (Observe a 5, não um 4)
Moberg
15
Meu mnemônico é pegar 4294967296 (que é fácil de lembrar) e dividir por 2
Portanto, 2 ^ 31 (assinado int max) é 2 ^ 30 (cerca de 1 bilhão) vezes 2 ^ 1 (2), ou cerca de 2 bilhões. E 2 ^ 32 é 2 ^ 30 * 2 ^ 2 ou cerca de 4 bilhões. Esse método de aproximação é preciso o suficiente, mesmo em torno de 2 ^ 64 (onde o erro cresce para cerca de 15%).
Se você precisar de uma resposta exata, deverá abrir uma calculadora.
Aproximações úteis de capacidade alinhada por palavras:
2 ^ 16 ~ = 64 mil // uint16
2 ^ 32 ~ = 4 bilhões // uint32, IPv4, tempo unix
2 ^ 64 ~ = 16 quintilhões (aka 16 bilhões de bilhões ou 16 milhões de trilhões) // uint64, "bigint"
2 ^ 128 ~ = 256 quintilhões de quintilhões (aka 256 trilhões de trilhões de trilhões) // IPv6, GUID
@ NOhs Aprecio o link, mas minha resposta do Python é sobre "Python 2" (adiciono o 2 ao título da seção para torná-lo mais claro). Portanto, minha resposta não está desatualizada. (Mas Python 2, reconhecidamente, é)
Martin Thoma
35
Aqui está um mnemônico para lembrar 2 ** 31, subtraia um para obter o valor inteiro máximo.
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
Eu usei os poderes de dois até 18 com frequência suficiente para lembrá-los, mas mesmo assim eu não me incomodei em memorizar 2 ** 31. É muito fácil calcular conforme necessário ou usar uma constante ou estimar como 2G.
Possui 32 bits e, portanto, pode armazenar 2 ^ 32 valores. Não menos.
JB.
28
Bem, além das piadas, se você está realmente procurando uma regra de memória útil, há uma que eu sempre uso para lembrar grandes números.
Você precisa dividir seu número em partes de 3 a 4 dígitos e lembrá-los visualmente usando a projeção no teclado do telefone celular. É mais fácil mostrar na foto:
Como você pode ver, a partir de agora você só precisa se lembrar de três formas, duas delas parecem um Tetris L e uma parece um tiquetaque . Definitivamente, é muito mais fácil do que memorizar um número de 10 dígitos.
Quando você precisar recuperar o número, basta recuperar as formas, imagine / olhe no teclado do telefone e projete as formas nele. Talvez inicialmente você precise olhar para o teclado, mas depois de um pouco de prática, lembre-se de que os números estão indo do canto superior esquerdo para o canto inferior direito, para que você possa simplesmente imaginá-lo na sua cabeça.
Lembre-se de lembrar a direção das formas e o número de dígitos em cada forma (por exemplo, no exemplo 2147483647, temos um Tetris L de 4 dígitos e um L de 3 dígitos).
Você pode usar essa técnica para lembrar facilmente qualquer número importante (por exemplo, lembrei-me do número do meu cartão de crédito de 16 dígitos etc.).
Boa ideia! A Forma 1 fornece 2147, a Forma 2 fornece 483 e a Forma 3 deve fornecer 647, mas, como desenhada, pode ser interpretada como 6 5 47. Como sei quando incluir todos os números cruzados (como na Forma 1 ) vs. quando pular alguns (como na Forma 3)? Você também deve memorizar que as formas codificam 4, 3 e 3 dígitos, respectivamente. Ou você pode desenhar a Forma 3 com um arco de 6 a 4 em vez de uma linha reta.
jskroch
@Squinch Bem, particularmente para lembrar o int.Max, não deve ser um problema, pois você deve saber que são cerca de 2 bilhões, portanto, possui 10 números (e isso significa que se a primeira forma tiver 4 números, a segunda e a terceira). formas têm 3 em conformidade). No entanto, esse é um ponto interessante se você quiser usar essa abordagem para qualquer número. Além disso, há números que são difíceis de lembrar de serem usados dessa maneira (por exemplo, 1112 ou algo assim). Por outro lado, não deve ser difícil lembrar de tal número. Então, eu diria que depende de você, deixe-me saber se você tiver algo interessante para isso. :)
Ivan Yurchenko
Sim, eu estava pensando em usar esse método para recuperar uma sequência arbitrária de dígitos, mas para esse valor int.Max específico, seu método funciona razoavelmente bem. Como você disse, dígitos repetidos são um problema. De fato, qualquer sequência repetida (como 2323) é um problema. Qualquer sequência que se cruze (como 2058) é difícil de desenhar. Qualquer técnica de memorização exige que você se lembre de várias informações. É uma preferência pessoal quais tipos de informações melhor ficam na sua cabeça.
Jkroch # 19/17
1
É assim que me lembro de códigos PIN e similares, mas de repente você precisa digitá-lo no seu computador e perceber que o teclado numérico é invertido verticalmente. Então isso é um pouco de desafio.
Nibarius
Alguém em Dallas, Texas , recebeu muitos telefonemas estranhos e não tem idéia de que você é o culpado de @IvanYurchenko.
Bob Stein
21
A maneira mais fácil de fazer isso para números inteiros é usar hexadecimal, desde que não exista algo como Int.maxInt (). A razão é esta:
Como é que isso funciona? Isso é muito semelhante à tática binária e cada dígito hexadecimal é exatamente de 4 bits. Além disso, muitos compiladores suportam hexadecimal muito melhor do que binários.
F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000
Portanto, 7F é igual a 01111111 / 7FFF é igual a 0111111111111111. Além disso, se você estiver usando isso para "constante incrivelmente alta", 7F ... é um hex seguro, mas é fácil o suficiente experimentar 7F e 80 e imprimi-los na sua tela para ver qual é.
0x7FFF + 0x0001 = 0x8000, portanto, sua perda é apenas um número, portanto, usar 0x7F ... geralmente não é uma desvantagem ruim para um código mais confiável, especialmente quando você começa a usar 32 bits ou mais
Primeiro, escreva 47 duas vezes (você gosta do Agente 47 , certo?), Mantendo os espaços mostrados (cada traço é um slot para um único dígito. Primeiros 2 slots e depois 4)
--47----47
Pense que você tem 12em mãos (porque 12 = uma dúzia). Multiplique pelo 4primeiro dígito do número do Agente 47, ou seja 47, e coloque o resultado à direita do primeiro par que você já possui
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
Multiplique 12por 3(para fazer o segundo dígito do número do Agente 47, ou seja 7, você precisa 7 - 4 = 3) e coloque o resultado à direita dos 2 primeiros pares, o último slot do par
12 * 3 = 36
--47483647 <-- after placing 36 to the right of first two pairs
Por fim, arraste os dígitos um a um da sua mão, começando no dígito mais à direita (2 neste caso) e coloque-os no primeiro slot vazio que você obtiver
2-47483647 <-- after placing 2
2147483647 <-- after placing 1
Aí está! Para o limite negativo, você pode pensar nisso como mais 1 em valor absoluto do que o limite positivo.
É por isso que o limite de RAM você pode ter em um computador de 32 bits é de 4 GB
Serj Sagan
3
o valor de 4 GB está correto com números inteiros não assinados. se você tem um int assinado, você obviamente precisa dividir por 2 para obter o valor máximo possível
SwissCoder
3
Em 32 bits, existem 2 GB da reserva de espaço em memória para o processo do usuário e 2 GB para o kernel. Ele pode ser configurado para que o kernel tenha apenas 1 GB reservado
// 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;
}
Curiosamente, Int32.MaxValue tem mais caracteres que 2.147.486.647.
Mas, novamente, temos a conclusão de código,
Acho que tudo o que realmente precisamos memorizar é Int3<period>M<enter>que são apenas 6 caracteres para digitar no visual studio.
ATUALIZAÇÃO
Por algum motivo, eu fui votada com baixa. A única razão pela qual consigo pensar é que eles não entenderam minha primeira afirmação.
"Int32.MaxValue" leva no máximo 14 caracteres para digitar. 2.147.486.647 leva 10 ou 13 caracteres para digitar, dependendo se você coloca as vírgulas ou não.
Mas o que conta não é quantos caracteres você precisa digitar, mas como memorizá-lo. Tenho certeza que Iwannagohomeé mais fácil memorizar do que 298347829. Não há razão para -1, no entanto.
glglgl
3
Pode ser menor que isso, basta criar seu próprio snippet de valor máximo, "imv" <tab> <tab>, talvez?
precisa saber é o seguinte
4
Caracteres !=Teclas. Para este pobre usuário de .Net, é in+ .+ ma+ Return.
Michael - Onde está Clay Shirky
11
Lembre-se de que 2 ^ (10 * x) é aproximadamente 10 ^ (3 * x) - você provavelmente já está acostumado a isso com kilobytes / kibibytes etc. Isso é:
2^10 = 1024 ~= one thousand
2^20 = 1024^2 = 1048576 ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion
Como um int usa 31 bits (+ ~ 1 bit para o sinal), apenas dobre 2 ^ 30 para obter aproximadamente 2 bilhões. Para um int não assinado usando 32 bits, dobre novamente para 4 bilhões. O fator de erro aumenta, quanto maior você aumentar, é claro, mas você não precisa do valor exato memorizado (se precisar, deve usar uma constante predefinida para ele). O valor aproximado é bom o suficiente para perceber quando algo pode estar perigosamente próximo do transbordamento.
Offtopic: 2 ^ 4 = 4 ^ 2, portanto a exponenciação é comutativa!
Adam Liss
10
@ Pier-OlivierThibault não, eu uso o tempo todo! agora preciso descobrir por que toda a minha matemática está saindo errada. provavelmente algo a ver com erros de multiplicação. de qualquer maneira, tchau!
Tckmn
9
é assim que eu faço para lembrar 2.147.483.647
Para um bairro da savana distante, o trio optimus enfeitiçou quarenta setenários
2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
O que você quer dizer? Deve ser fácil lembrar que é 2 ^ 32. Se você deseja que uma regra memorize o valor desse número, uma regra prática é a conversão entre binário e decimal em geral:
2 ^ 10 ~ 1000
o que significa 2 ^ 20 ~ 1.000.000
e 2 ^ 30 ~ 1.000.000.000
O dobro disso (2 ^ 31) é aproximadamente 2 bilhões, e dobrando novamente (2 ^ 32) é 4 bilhões.
É uma maneira fácil de obter uma estimativa aproximada de qualquer número binário. 10 zeros em binário se tornam 3 zeros em decimal.
Int32 significa que você tem 32 bits disponíveis para armazenar seu número. O bit mais alto é o bit de sinal, isso indica se o número é positivo ou negativo. Então você tem 2 ^ 31 bits para números positivos e negativos.
Com zero sendo um número positivo, você obtém o intervalo lógico de (mencionado anteriormente)
+2147483647 a -2147483648
Se você acha que é muito pequeno, use Int64:
+9223372036854775807 a -9223372036854775808
E por que diabos você quer se lembrar desse número? Para usar no seu código? Você sempre deve usar Int32.MaxValue ou Int32.MinValue em seu código, pois esses são valores estáticos (dentro do núcleo .net) e, portanto, mais rápidos em uso do que a criação de um novo int com código.
Minha afirmação: se conhece esse número de memória .. você está apenas se exibindo!
A maioria dos computadores modernos armazena números no formato "dois elogios". O bit mais alto (não o mais baixo) é o sinal. O mais interessante com dois componentes é que os números -ve são tratados pelas regras naturais de sobrecarga da CPU. ou seja, 0xFF é 8 bits -1, adicione-o a 0x01 (+1) e você obtém 0x100. Trunque bits acima de 8 a 0x00 e você terá sua resposta.
Tom Leys
5
Lembre-se disto: 21 IQ ITEM 47
Ele pode ser decodificado com qualquer teclado telefônico ou você mesmo pode escrever um em um papel.
Para lembrar "21 IQ ITEM 47", eu usaria "Hitman: Codename 47 tinha 21 missões, que eram cada IQ ITEM por si mesmas".
Ou "limpo os dentes às 21:47 todos os dias, porque tenho QI alto e não gosto de itens na boca".
Respostas:
São 2.147.483.647. A maneira mais fácil de memorizar é através de uma tatuagem.
fonte
Integer.MAX_VALUE
em Java.A resposta mais correta que consigo pensar é
Int32.MaxValue
.fonte
Se você acha que o valor é muito difícil de lembrar na base 10, tente a base 2: 1111111111111111111111111111111
fonte
11111111111111111111111111111111
como um número da base 2 ainda seria positivo (um exemplo negativo na base 2 seria-1
) . Essa seqüência de bits só é negativo se representando número de complemento a 32-bit 2 de :)se você se lembra do número inteiro do Pi, o número que você está procurando está na posição 1.867.996.680 a 1.867.996.689 dos dígitos decimais de Pi
fonte: http://www.subidiom.com/pi/
fonte
São 10 dígitos, então finja que é um número de telefone (supondo que você esteja nos EUA). 214-748-3647. Eu não recomendo chamá-lo.
fonte
INT
vez deVARCHAR
no MySQL.Em vez de pensar nele como um grande número, tente dividi-lo e procurar idéias associadas, por exemplo:
O exposto acima se aplica ao maior número negativo; positivo é aquele menos um.
Talvez o colapso acima não seja mais memorável para você (dificilmente é emocionante!), Mas espero que você possa ter algumas idéias!
fonte
2^(31!)
ou(2^31)!
?Maior valor negativo (32 bits): -2147483648
(1 << 31)
Maior valor positivo (32 bits): 2147483647
~ (1 << 31)
Mnemônico: "bêbado AKA com tesão"
fonte
De qualquer forma, considere esse regex (ele determina se a sequência contém um número inteiro não negativo na forma decimal que também não é maior que 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]
Talvez ajude você a se lembrar.
fonte
2147483647
. Isso seria de grande ajuda para o OP #Foi assim que me lembrei
2147483647
:Escreva-os horizontalmente:
Agora você tem 2147483647.
Espero que isso ajude pelo menos um pouco.
fonte
Portanto, 2 ^ 31 (assinado int max) é 2 ^ 30 (cerca de 1 bilhão) vezes 2 ^ 1 (2), ou cerca de 2 bilhões. E 2 ^ 32 é 2 ^ 30 * 2 ^ 2 ou cerca de 4 bilhões. Esse método de aproximação é preciso o suficiente, mesmo em torno de 2 ^ 64 (onde o erro cresce para cerca de 15%).
Se você precisar de uma resposta exata, deverá abrir uma calculadora.
Aproximações úteis de capacidade alinhada por palavras:
fonte
Basta pegar uma calculadora decente e digitar "7FFFFFFF" no modo hexadecimal e depois mudar para decimal.
2147483647.
fonte
Int32.MaxValue
/numeric_limits<int32_t>::max()
É sobre
2.1 * 10^9
. Não há necessidade de saber exatamente2^{31} - 1 = 2,147,483,647
.C
Você pode encontrá-lo em C assim:
dá (bem, sem o
,
)C ++ 11
Java
Você também pode obter isso com Java:
Mas lembre-se de que números inteiros Java sempre são assinados.
Python 2
Python possui números inteiros de precisão arbitrários. Mas no Python 2, eles são mapeados para inteiros C. Então você pode fazer isso:
Então, Python muda para
long
quando o número inteiro fica maior que2^31 -1
fonte
Aqui está um mnemônico para lembrar 2 ** 31, subtraia um para obter o valor inteiro máximo.
a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9
Eu usei os poderes de dois até 18 com frequência suficiente para lembrá-los, mas mesmo assim eu não me incomodei em memorizar 2 ** 31. É muito fácil calcular conforme necessário ou usar uma constante ou estimar como 2G.
fonte
32 bits, um para o sinal, 31 bits de informação:
Por que -1?
Como o primeiro é zero, o maior é a contagem menos um .
EDIT para cantfindaname88
A contagem é 2 ^ 31, mas a maior não pode ser 2147483648 (2 ^ 31) porque contamos de 0, não 1.
Outra explicação com apenas 3 bits: 1 para o sinal, 2 para a informação
Abaixo de todos os valores possíveis com 3 bits: (2 ^ 3 = 8 valores)
fonte
Bem, ele tem 32 bits e, portanto, pode armazenar 2 ^ 32 valores diferentes. Metade deles é negativa.
A solução é 2.147.483.647
E o mais baixo é -2.147.483.648.
(Observe que há mais um valor negativo.)
fonte
Bem, além das piadas, se você está realmente procurando uma regra de memória útil, há uma que eu sempre uso para lembrar grandes números.
Você precisa dividir seu número em partes de 3 a 4 dígitos e lembrá-los visualmente usando a projeção no teclado do telefone celular. É mais fácil mostrar na foto:
Como você pode ver, a partir de agora você só precisa se lembrar de três formas, duas delas parecem um Tetris L e uma parece um tiquetaque . Definitivamente, é muito mais fácil do que memorizar um número de 10 dígitos.
Quando você precisar recuperar o número, basta recuperar as formas, imagine / olhe no teclado do telefone e projete as formas nele. Talvez inicialmente você precise olhar para o teclado, mas depois de um pouco de prática, lembre-se de que os números estão indo do canto superior esquerdo para o canto inferior direito, para que você possa simplesmente imaginá-lo na sua cabeça.
Lembre-se de lembrar a direção das formas e o número de dígitos em cada forma (por exemplo, no exemplo 2147483647, temos um Tetris L de 4 dígitos e um L de 3 dígitos).
Você pode usar essa técnica para lembrar facilmente qualquer número importante (por exemplo, lembrei-me do número do meu cartão de crédito de 16 dígitos etc.).
fonte
A maneira mais fácil de fazer isso para números inteiros é usar hexadecimal, desde que não exista algo como Int.maxInt (). A razão é esta:
Valores máximos não assinados
Valores assinados, usando 7F como o valor máximo assinado
Valores assinados, usando 80 como o valor máximo assinado
Como é que isso funciona? Isso é muito semelhante à tática binária e cada dígito hexadecimal é exatamente de 4 bits. Além disso, muitos compiladores suportam hexadecimal muito melhor do que binários.
Portanto, 7F é igual a 01111111 / 7FFF é igual a 0111111111111111. Além disso, se você estiver usando isso para "constante incrivelmente alta", 7F ... é um hex seguro, mas é fácil o suficiente experimentar 7F e 80 e imprimi-los na sua tela para ver qual é.
0x7FFF + 0x0001 = 0x8000, portanto, sua perda é apenas um número, portanto, usar 0x7F ... geralmente não é uma desvantagem ruim para um código mais confiável, especialmente quando você começa a usar 32 bits ou mais
fonte
Primeiro, escreva 47 duas vezes (você gosta do Agente 47 , certo?), Mantendo os espaços mostrados (cada traço é um slot para um único dígito. Primeiros 2 slots e depois 4)
Pense que você tem
12
em mãos (porque 12 = uma dúzia). Multiplique pelo4
primeiro dígito do número do Agente 47, ou seja47
, e coloque o resultado à direita do primeiro par que você já possuiMultiplique
12
por3
(para fazer o segundo dígito do número do Agente 47, ou seja7
, você precisa7 - 4 = 3
) e coloque o resultado à direita dos 2 primeiros pares, o último slot do parPor fim, arraste os dígitos um a um da sua mão, começando no dígito mais à direita (2 neste caso) e coloque-os no primeiro slot vazio que você obtiver
Aí está! Para o limite negativo, você pode pensar nisso como mais 1 em valor absoluto do que o limite positivo.
Pratique algumas vezes e você entenderá!
fonte
2GB
(existe um tamanho mínimo para respostas?)
fonte
Assumindo .NET -
fonte
Se você conhece sua tabela ASCII de cor e não
MaxInt
:!GH6G = 21 47 48 36 47
fonte
A melhor regra para memorizar é:
21 (número mágico!)
47 (lembre-se disso)
48 (sequencial!)
36 (21 + 15, ambas as mágicas!)
47 novamente
Também é mais fácil lembrar 5 pares do que 10 dígitos.
fonte
A maneira mais fácil de lembrar é olhar para
std::numeric_limits< int >::max()
Por exemplo ( do MSDN ),
fonte
Curiosamente, Int32.MaxValue tem mais caracteres que 2.147.486.647.
Mas, novamente, temos a conclusão de código,
Acho que tudo o que realmente precisamos memorizar é
Int3<period>M<enter>
que são apenas 6 caracteres para digitar no visual studio.ATUALIZAÇÃO Por algum motivo, eu fui votada com baixa. A única razão pela qual consigo pensar é que eles não entenderam minha primeira afirmação.
"Int32.MaxValue" leva no máximo 14 caracteres para digitar. 2.147.486.647 leva 10 ou 13 caracteres para digitar, dependendo se você coloca as vírgulas ou não.
fonte
Iwannagohome
é mais fácil memorizar do que298347829
. Não há razão para -1, no entanto.!=
Teclas. Para este pobre usuário de .Net, éin
+.
+ma
+ Return.Lembre-se de que 2 ^ (10 * x) é aproximadamente 10 ^ (3 * x) - você provavelmente já está acostumado a isso com kilobytes / kibibytes etc. Isso é:
Como um int usa 31 bits (+ ~ 1 bit para o sinal), apenas dobre 2 ^ 30 para obter aproximadamente 2 bilhões. Para um int não assinado usando 32 bits, dobre novamente para 4 bilhões. O fator de erro aumenta, quanto maior você aumentar, é claro, mas você não precisa do valor exato memorizado (se precisar, deve usar uma constante predefinida para ele). O valor aproximado é bom o suficiente para perceber quando algo pode estar perigosamente próximo do transbordamento.
fonte
é assim que eu faço para lembrar 2.147.483.647
Para um bairro da savana distante, o trio optimus enfeitiçou quarenta setenários
fonte
O que você quer dizer? Deve ser fácil lembrar que é 2 ^ 32. Se você deseja que uma regra memorize o valor desse número, uma regra prática é a conversão entre binário e decimal em geral:
2 ^ 10 ~ 1000
o que significa 2 ^ 20 ~ 1.000.000
e 2 ^ 30 ~ 1.000.000.000
O dobro disso (2 ^ 31) é aproximadamente 2 bilhões, e dobrando novamente (2 ^ 32) é 4 bilhões.
É uma maneira fácil de obter uma estimativa aproximada de qualquer número binário. 10 zeros em binário se tornam 3 zeros em decimal.
fonte
No Objective-C (iOS e OSX), lembre-se destas macros:
fonte
Int32 significa que você tem 32 bits disponíveis para armazenar seu número. O bit mais alto é o bit de sinal, isso indica se o número é positivo ou negativo. Então você tem 2 ^ 31 bits para números positivos e negativos.
Com zero sendo um número positivo, você obtém o intervalo lógico de (mencionado anteriormente)
+2147483647 a -2147483648
Se você acha que é muito pequeno, use Int64:
+9223372036854775807 a -9223372036854775808
E por que diabos você quer se lembrar desse número? Para usar no seu código? Você sempre deve usar Int32.MaxValue ou Int32.MinValue em seu código, pois esses são valores estáticos (dentro do núcleo .net) e, portanto, mais rápidos em uso do que a criação de um novo int com código.
Minha afirmação: se conhece esse número de memória .. você está apenas se exibindo!
fonte
Lembre-se disto: 21 IQ ITEM 47
Ele pode ser decodificado com qualquer teclado telefônico ou você mesmo pode escrever um em um papel.
Para lembrar "21 IQ ITEM 47", eu usaria "Hitman: Codename 47 tinha 21 missões, que eram cada IQ ITEM por si mesmas".
Ou "limpo os dentes às 21:47 todos os dias, porque tenho QI alto e não gosto de itens na boca".
fonte
de-encoded with any phone pad
?