9,223,372,036,854,775,807

From testwiki
Jump to navigation Jump to search

Template:Infobox number The number 9,223,372,036,854,775,807 is the integer equal to 2Template:Sup − 1. Its prime factorization is Template:Nowrap, which is equal to Template:Nowrap

In computing

The number 9,223,372,036,854,775,807, equivalent to the hexadecimal value Template:Nowrap, is the maximum value for a 64-bit signed integer in computing. It is therefore the maximum value for a variable declared as a long integer (Template:Code, Template:Code, or Template:Code) in many programming languages running on modern computers.[1][2][3] The presence of the value may reflect an integer overflow, or error.[4]

This value is also the largest positive signed address offset for 64-bit CPUs utilizing sign-extended memory addressing (such as the x86-64 architecture, which calls this "canonical form" extended addressing[5]Template:Rp). Being an odd value, its appearance may reflect an erroneous (misaligned) memory address.

The C standard library data type time_t, used on operating systems such as Unix, is typically implemented as either a 32- or 64-bit signed integer value, counting the number of seconds since the start of the Unix epoch (midnight UTC of 1 January 1970).[6] Systems employing a 32-bit type are susceptible to the Year 2038 problem, so many implementations have moved to a wider 64-bit type, with a maximal value of 2Template:Sup−1 corresponding to a number of seconds 292 billion years from the start of Unix time.

The FILETIME value used in Windows is a 64-bit value corresponding to the number of 100-nanosecond intervals since midnight UTC of 1 January 1601. The latest time that can be represented using this value is 02:48:05.4775807 UTC on 14 September 30,828 (corresponding to 9,223,372,036,854,775,807 100-nanosecond intervals since 1 January 1601).[7] Beyond this day, Windows will display an "invalid system time" error on startup.

Other systems encode system time as a signed 64-bit integer count of the number of ticks since some epoch date. On some systems (such as the Java standard library), each tick is one millisecond in duration, yielding a usable time range extending 292 million years into the future.

In C#, this is available as the data type long.[8] The constant is available as long.MaxValue. In the .NET Framework it is available as the Int64 struct.[9]

The unsigned equivalent is 18,446,744,073,709,551,615, which is one more than twice this number, or 2Template:Sup − 1.

See also

References

Template:Reflist

  1. "Primitive Data Types" Oracle Corporation
  2. Saisang Cai, Mike B, Colin Robertson, Mike Jones, Gordon Hogenson, Billy O'Neal "Integer Limits" Microsoft Corporation 28 January 2018
  3. "BIGINT data type" The Apache Software Foundation
  4. "Integer Overflow" Techopedia
  5. Template:Cite web
  6. "time_t" cplusplus.com
  7. Template:Cite web
  8. long (C# Reference) | Microsoft Docs
  9. Int64 Struct (System) | Microsoft Docs