1379

番号がどうしても思い出せません。記憶の法則が必要です。

4

45 に答える 45

5064

2,147,483,647 です。それを覚える最も簡単な方法は、入れ墨をすることです。

于 2008-09-18T17:20:17.460 に答える
493

私が考えることができる最も正しい答えは ですInt32.MaxValue

于 2008-09-18T17:23:34.537 に答える
439

基数 10 で値を覚えるのが難しいと思われる場合は、基数 2 を試してください: 11111111111111111111111111111

于 2010-06-01T17:05:17.017 に答える
316

円周率全体を覚えている場合、探している番号は、円周率の 10 進数の 1,867,996,680 から 1,867,996,689 までの位置にあります。

数値文字列 2147483647 は、Pi の 1,867,996,680 桁に表示されます。3.14......86181221809936452346 2147483647 10527835665425671614...

ソース: http://www.subidiom.com/pi/

于 2015-10-26T22:19:25.220 に答える
290

10桁なので、電話番号のふりをします(米国にいると仮定します)。214-748-3647。私はそれを呼ぶことをお勧めしません。

于 2008-09-18T17:24:53.177 に答える
172

それを1つの大きな数字と考えるのではなく、それを分解して、関連するアイデアを探してみてください。

  • 最大2回のスヌーカーブレーク(最大ブレークは147)
  • 4年(48ヶ月)
  • 3年(36ヶ月)
  • 4年(48ヶ月)

上記は最大の負の数に適用されます。正はマイナス1です。

たぶん、上記の内訳はあなたにとってもう記憶に残ることはないでしょう(それはほとんどエキサイティングではありません!)が、うまくいけば、あなたはいくつかのアイデアを思い付くことができます!

于 2008-09-18T17:27:42.717 に答える
144

負の最大値 (32 ビット) : -2147483648
(1 << 31)

正の最大値 (32 ビット) : 2147483647
~(1 << 31)

記憶法: 「ドランク AKA 角質」

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
于 2012-06-15T20:04:05.697 に答える
75

とにかく、この正規表現を使用します (文字列に、Int32.MaxValue を超えない 10 進形式の負でない整数が含まれているかどうかを判別します)

[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]

覚えるのに役立つかもしれません。

于 2010-06-01T16:44:09.660 に答える
61

それが私が覚えていた方法です2147483647

  • 214 - 2.14 はおよそ pi-1 であるため
  • 48 = 6*8
  • 64 = 8*8

これらを横書きにします。

214_48_64_
and insert:
   ^  ^  ^
   7  3  7 - which is Boeing's airliner jet (thanks, sgorozco)

これで 2147483647 になりました。

これが少なくとも少し役立つことを願っています。

于 2013-07-05T11:11:48.123 に答える
55
2^(x+y) = 2^x * 2^y

2^10 ~ 1,000
2^20 ~ 1,000,000
2^30 ~ 1,000,000,000
2^40 ~ 1,000,000,000,000
(etc.)

2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512

したがって、2^31 (signed int max) は 2^30 (約 10 億) 倍の 2^1 (2)、つまり約 20 億です。そして 2^32 は 2^30 * 2^2 または約 40 億です。この近似方法は、約 2^64 (エラーが約 15% に達する) まで十分に正確です。

正確な答えが必要な場合は、電卓を使用する必要があります。

便利な単語に合わせた容量の概算:

  • 2^16 ~= 64,000 // uint16
  • 2^32 ~= 40 億 // uint32、IPv4、unixtime
  • 2^64 ~= 16 京 (別名 160 億または 1600 万兆) // uint64, "bigint"
  • 2^128 ~= 256 京 (別名 256 兆兆) // IPv6、GUID
于 2008-09-18T17:48:38.343 に答える
46

適切な電卓を使用して、16 進数モードで「7FFFFFFF」と入力してから、10 進数に切り替えます。

2147483647。

于 2008-09-18T17:47:13.653 に答える
36

について2.1 * 10^9です。正確に知る必要はありません2^{31} - 1 = 2,147,483,647

次のようにCで見つけることができます:

#include <stdio.h>
#include <limits.h>

main() {
    printf("max int:\t\t%i\n", INT_MAX);
    printf("max unsigned int:\t%u\n", UINT_MAX);
}

与えます(まあ、なしで,

max int:          2,147,483,647
max unsigned int: 4,294,967,295

C++ 11

std::cout << std::numeric_limits<int>::max() << "\n";
std::cout << std::numeric_limits<unsigned int>::max() << "\n";

ジャワ

Java でもこれを取得できます。

System.out.println(Integer.MAX_VALUE);

ただし、Java 整数は常に署名されていることに注意してください。

パイソン 2

Python には任意精度の整数があります。しかし、Python 2 では、それらは C 整数にマップされます。だからあなたはこれを行うことができます:

import sys
sys.maxint
>>> 2147483647
sys.maxint + 1
>>> 2147483648L

longしたがって、Pythonは、整数がより大きくなるとに切り替わります2^31 -1

于 2012-11-27T18:59:40.073 に答える
35

2**31 を記憶するためのニーモニックを次に示します。1 を引いて最大の整数値を取得します。

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

私は 2 の累乗から 18 までを覚えるのに十分な頻度で使用してきましたが、それでも 2**31 を暗記する気にはなりませんでした。必要に応じて計算したり、定数を使用したり、2G として推定したりするのは簡単すぎます。

于 2013-05-08T19:31:23.547 に答える
30

それは 32 ビットなので、2^32 個の異なる値を格納できます。半分は陰性です。

解は 2,147,483,647 です

そして最低は -2,147,483,648 です。

(もう 1 つ負の値があることに注意してください。)

于 2008-09-18T17:19:40.987 に答える
28

ジョークは別として、本当に役に立つ記憶のルールを探しているなら、私がいつも大きな数を覚えるために使っているルールがあります。

番号を 3 ~ 4 桁の部分に分解し、携帯電話のキーボードのプロジェクションを使用して視覚的に覚える必要があります。画像に表示する方が簡単です:

ここに画像の説明を入力

ご覧のとおり、これからは3 つの形を覚える必要があります。そのうちの 2 つは Tetris L のように見え、1 つはダニのように見えます。これは、10 桁の数字を覚えるよりもはるかに簡単です。

数字を思い出す必要があるときは、形を思い出すだけで、電話のキーボードを想像/見て、その上に形を投影します。最初はキーボードを見なければならないかもしれませんが、少し練習すれば、数字が左上から右下に移動することを覚えているので、頭の中で単純に想像できるようになります。

図形の方向と各図形の桁数を覚えておいてください (たとえば、2147483647 の例では、4 桁のテトリス L と 3 桁の L があります)。

このテクニックを使えば、重要な数字を簡単に覚えることができます (たとえば、16 桁のクレジット カード番号を思い出したなど)。

于 2017-07-15T09:44:00.173 に答える
21

整数に対してこれを行う最も簡単な方法は、Int.maxInt()のようなものがない場合、16進数を使用することです。理由はこれです:

符号なしの最大値

8-bit 0xFF
16-bit 0xFFFF
32-bit 0xFFFFFFFF
64-bit 0xFFFFFFFFFFFFFFFF
128-bit 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

符号付きの値、最大符号付き値として7Fを使用

8-bit 0x7F
16-bit 0x7FFF
32-bit 0x7FFFFFFF
64-bit 0x7FFFFFFFFFFFFFFF

符号付きの値、最大符号付きの値として80を使用

8-bit 0x80
16-bit 0x8000
32-bit 0x80000000
64-bit 0x8000000000000000

これはどのように作動しますか?これは2進数の戦術と非常によく似ており、各16進数は正確に4ビットです。また、多くのコンパイラは、バイナリをサポートするよりもはるかに優れた16進数をサポートしています。

F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000

したがって、7Fは01111111に等しい/7FFFは0111111111111111に等しい。また、これを「めちゃくちゃ高い定数」に使用している場合、7F ...は安全なヘックスですが、7Fと80を試して印刷するのは簡単です。それがどれであるかを確認するために画面に移動します。

0x7FFF + 0x0001 = 0x8000、つまり損失は1つの数値だけなので、0x7F ...を使用することは、特に32ビット以上を使用し始めたら、通常、より信頼性の高いコードとの悪いトレードオフではありません。

于 2012-09-14T15:50:14.200 に答える
20

2GB

(回答の最小の長さはありますか?)

于 2008-09-18T17:57:51.630 に答える
15

.NETを想定 -

Console.WriteLine(Int32.MaxValue);
于 2008-09-18T17:23:31.040 に答える
15

たまたまASCIIテーブルを暗記していて、そうではない場合MaxInt
!GH6G = 21 47 48 36 47

于 2014-09-05T03:15:09.277 に答える
15

覚えるのに最適なルールは次のとおりです。
21 (マジック ナンバー!)
47 (覚えておいてください)
48 (シーケンシャル!)
36 (21 + 15、両方のマジック!)
47再び

また、10桁よりも5ペアの方が覚えやすいです。

于 2015-02-26T13:33:47.373 に答える
14

覚える最も簡単な方法は、 std::numeric_limits< int >::max()

たとえば(MSDNから)、

// 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;
}
于 2009-03-03T11:42:30.103 に答える
14

興味深いことに、Int32.MaxValue には 2,147,486,647 より多くの文字があります。

しかし、繰り返しますが、コード補完があります。

したがって、私たちが本当に覚えなければならないのはInt3<period>M<enter>、Visual Studio で入力する 6 文字だけです。

更新 何らかの理由で私は反対票を投じられました。私が考えられる唯一の理由は、彼らが私の最初の発言を理解していなかったということです。

"Int32.MaxValue" は最大 14 文字で入力できます。2,147,486,647 は、コンマを入れるかどうかに応じて、10 文字または 13 文字の入力が必要です。

于 2010-06-01T16:50:14.433 に答える
10

2^(10*x) は約 10^(3*x) であることを覚えておいてください。おそらく、キロバイト/キビバイトなどでこれに慣れているでしょう。つまり:

2^10 = 1024                ~= one thousand
2^20 = 1024^2 = 1048576    ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion

int は 31 ビット (符号には + ~1 ビット) を使用するため、2^30 を 2 倍するだけで約 20 億になります。32 ビットを使用する unsigned int の場合、さらに 2 倍して 40 億にします。もちろん、大きくなるほどエラー係数は高くなりますが、正確な値を記憶する必要はありません (必要な場合は、あらかじめ定義された定数を使用する必要があります)。おおよその値は、何かが危険なほどオーバーフローに近づいていることに気付くのに十分です。

于 2008-09-18T17:58:45.607 に答える
9

これが私が覚えている方法です 2,147,483,647

遠くのサバンナ クォーターへ オプティマス トリオ hexed 40 septenary

2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
于 2015-08-05T05:15:07.617 に答える
5

Int32は、番号を格納するために32ビットを使用できることを意味します。最上位ビットは符号ビットです。これは、数値が正か負かを示します。したがって、正の数と負の数には2^31ビットがあります。

ゼロが正の数である場合、(前述の)の論理範囲を取得します

+2147483647から-2147483648

それが小さすぎると思われる場合は、Int64を使用してください。

+9223372036854775807から-9223372036854775808

そして、なぜあなたはこの番号を覚えておきたいのですか?コードで使用するには?Int32.MaxValueまたはInt32.MinValueは静的な値(.netコア内)であり、コードで新しいintを作成するよりも高速に使用できるため、コードでは常にInt32.MaxValueまたはInt32.MinValueを使用する必要があります。

私の声明:記憶によってこの数を知っているなら..あなたはただ誇示しているだけです!

于 2009-06-17T09:16:25.397 に答える
4

Groovyが道を進んでいる場合:

groovy -e " println Integer.MAX_VALUE "

(Groovyは、Javaコンテキスト内でのクイックリファレンスに非常に役立ちます。)

于 2008-09-18T18:09:49.870 に答える
2

これは私が覚えている方法です...
16進数では、数字は4ビットを表すため、4 * 8 = 32であるため、最大符号付き32ビットintは次のとおりです。

0xFFFFFFFF >> 1 # => 2147483647
于 2011-11-30T18:53:10.663 に答える
1

バイナリでは、Int32 の最大値は 1111111111111111111111111111111 ですが、10 ベースでは 2147483647 または 2^31-1 または Int32.MaxValue であることがわかります。

于 2014-01-18T03:13:13.827 に答える
1

とても覚えやすいです。16 進数では 1 桁が 4 ビットです。unsigned int write0xと 8 fs ( 0xffffffff) を Python または Ruby シェルに入力して、10 進法で値を取得します。符号付きの値が必要な場合は、最上位ビットが符号として使用されることに注意してください。だからあなたはそれを省かなければなりません。下位 3 ビットが 1 で 4 ビット目が 0 の数が 7 であることだけを覚えておく必要があるので0x7fffffff、Python または Ruby シェルに書き込みます。0x100000000 - 1and と書くこともでき0x80000000 - 1ます。

于 2011-07-07T15:19:20.147 に答える
0

C ではINT32_MAXafter を使用し#include <stdint.h>ます。C++ ではINT32_MAXafter を使用し#include <cstdint>ます。

またはINT_MAX、プラットフォーム固有のサイズまたはUINT32_MAXまたはUINT_MAXの場合unsigned inthttp://www.cplusplus.com/reference/cstdint/およびhttp://www.cplusplus.com/reference/climits/を参照してください。

またはsizeof(int)

于 2017-02-06T22:21:20.847 に答える
-1
max_signed_32_bit_num = 1 << 31 - 1;  // alternatively ~(1 << 31)

いずれにせよ、コンパイラはそれを最適化する必要があります。

1 << 31 - 1私はよりも好きです

0x7ffffffffcountは必要ないため

unsigned( pow( 2, 31 ) ) - 1あなたは必要ないから<math.h>

于 2016-06-26T22:18:01.353 に答える
-1

これは 2 31 − 1 (32 ビット、1 は符号に使用) です。

おおよその値が必要な場合は、2 10 = 1024 ≈ 10 3を使用するため、2 31 ≈ 2*10 9となります。正確な値を手で計算したい場合は、二乗によるべき乗を使用して 2 32 = 2 (2 5 )を求め、2 で割ります。2 32を得るには、5 回だけ 2 乗する必要があります。

2*2 = 4
4*4 = 16
16*16 = 256
256*256 = 25*25*100 + 2*250*6 + 36 = 62500 + 3000 + 36 = 65536
65536*65536 =65000*65000 + 2*65000*536 + 536*536 =  
4225000000 + 130000*536 + (250000 + 3600 + 36*36) =
4225000000 + 69680000 + 250000 + 3600 + 1296 =
4294967296

これを 2 で割って 1 を引くと、2,147,483,647 になります。すべての桁が必要ではなく、最初の 3 桁の有効数字だけが必要な場合、各 2 乗ステップの計算は非常に簡単です。

于 2016-10-26T14:53:27.487 に答える