рдПрдЬрд╝рдореИрде - PHP рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА (рдХрд╕реНрдЯрдо рд╕рд╣рд┐рдд) + рдордирдорд╛рдирд╛ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдЕрдВрдХрдЧрдгрд┐рдд

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдПрдХ рдХрд╛рд░реНрдп рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдЬрдиреНрдп рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реБрдЖ рд╣реИред

рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдмреЗрд╕ 36 / рдмреЗрд╕ 62 рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдпреВрдЖрд░рдПрд▓ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдирд╛ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдмреЗрд╕ 62 рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдореЗрдореЛрд░реА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдерд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЧрдгрд┐рддреАрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдпрд╣ рдПрдЬрд╝рдореИрде рдирд┐рдХрд▓рд╛ - рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ (рдХрд╕реНрдЯрдо рд╕рд╣рд┐рдд) рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп + рдордирдорд╛рдиреА рд╕рдЯреАрдХрддрд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрдВрдХрдЧрдгрд┐рддред

PSR-0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд, рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ 100% рдХреЛрдб рдХрд╡рд░реЗрдЬред

рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА


рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп, рдЗрд╕ рд╕рдордп, рдЫреЛрдЯреЗ, рдмрдбрд╝реЗ рдФрд░ рд╡рд┐рд╢рд╛рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдПрдХ рд╕реНрдерд┐рддреАрдп рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред 2 рд╕реЗ 62 рд╕рдорд╛рд╡реЗрд╢реА рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд░реНрдгрдорд╛рд▓рд╛ (рдХрдо рд╕реЗ рдХрдо рд╕рднреА ASCII рд╡рд░реНрдг) рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддреАрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдпрд╣ рднреА рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рднрд┐рдиреНрди рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЬреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рдХрд▓реНрдк 1 - рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп (рдбреЗрд╕реАрдмрд▓, рдмрд╛рдЗрдВрдбреЗрдХ, рдбреЗрдХреЛрдХреНрдЯ, ...)

рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ (10, 2, 8, 16) рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП PHP рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЫрд╣ рдХрд╛рд░реНрдпред
рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВрд╡рд┐рдкрдХреНрд╖
  • рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛

  • рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рд░реНрднрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдкред '-' рдЪрд┐рдиреНрд╣ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ред рдпрд╣ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ
  • рдЕрдзрд┐рдХрддрдо рд╕рдорд░реНрдерд┐рдд рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░рдВрддрд░ PHP_INT_MAX рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
  • рдЕрдВрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдореВрд▓ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдорд╛рдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рджрд╢рдорд▓рд╡ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддреЗ рд╕рдордпред рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдпрд╣ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  • рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА


рд╡рд┐рдХрд▓реНрдк 2 - base_convert

2 рд╕реЗ 36 рд╕рдорд╛рд╡реЗрд╢реА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ PHP рдлрд╝рдВрдХреНрд╢рдиред
рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВрд╡рд┐рдкрдХреНрд╖
  • рдореВрд▓ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдорд╛рдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ

  • рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ
  • рдЕрдзрд┐рдХрддрдо рд╕рдорд░реНрдерд┐рдд рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░рдВрддрд░ PHP_INT_MAX + 1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
  • рдЕрдВрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА
  • рд╡рд┐рд╢реЗрд╖ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 40-70% рдзреАрдорд╛


рд╡рд┐рдХрд▓реНрдк 3 - рдЬреАрдПрдордкреА (gmp_strval (gmp_init ($ рд╕рдВрдЦреНрдпрд╛, $ x), $ y))

GMP рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде, рдЖрдк рд╡рд╣рд╛рдВ рд╕реЗ рдирдВрдмрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 2 рд╕реЗ 62 рдФрд░ -2 рд╕реЗ -36 рддрдХ рд╕рд┐рд╕реНрдЯрдо рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ (рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рд┐рд╕реНрдЯрдо 2-36, рдХреЗрд╡рд▓ рдКрдкрд░реА рдорд╛рдорд▓реЗ рдореЗрдВ рдкрддреНрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ)ред
рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВрд╡рд┐рдкрдХреНрд╖
  • рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реЛрддреА рд╣реИрдВред
  • рдХреЛрдИ рдЖрдХрд╛рд░ рд╕реАрдорд╛ рдирд╣реАрдВ
  • рд╕рднреА рдорд╛рдирдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ (2-62)

  • рдЕрдВрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдореВрд▓ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдорд╛рдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рд░реВрдкрд╛рдВрддрд░рдг рддреНрд░реБрдЯрд┐
  • 70-90% рдзреАрдорд╛, base_convert
  • рд╡рд┐рд╢реЗрд╖ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ owerреж-реирезрел% рдзреАрдорд╛

рдЗрд╕рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╡рд┐рдХрд▓реНрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреГрддреАрдп-рдкрдХреНрд╖ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ PHP рдореЗрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рддреЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА (рдпрд╣ рдзреАрдорд╛ рд╣реИ :) - рдЬреАрдПрдордкреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 6000% рдзреАрдорд╛ред рдЗрд╕рд▓рд┐рдП, рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рдПрдХ рддреЗрдЬ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред GMP рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдФрд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реИред рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд┐рдЯ рдореЗрдВ рддреАрди рдЧреИрд░-рдорд╛рдирдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: R324648 рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рд╕рд┐рджреНрдз рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдЕрд▓реНрдлрд╛рдмреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде base32 рдФрд░ base64, рдПрдХ рд╣реА рдорд╛рдирдХ рд╕реЗ base64url - URL рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд╕рд╛рде base64ред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╣реИ, рдордирдорд╛рдиреЗ рддрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдзрд╛рд░ 64 рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЖрдзрд╛рд░ 64_encode рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред

рдХрд╛рд╢, рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЕрдВрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рдореИрдВ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рдФрд░ рдЗрд╕реЗ рд╕реНрдердЧрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдХрд░реВрдВ, рдпрд╛ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддреЛ рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рд╣рд░реНрд╖ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ред

рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг


$res = NumeralSystem::convert('WIKIPEDIA', 36, 10); echo $res . PHP_EOL; // 91730738691298 $res = NumeralSystem::convert('9173073869129891730738691298', 10, 16); echo $res . PHP_EOL; // 1da3c9f2dd3133d4ed04bce2 $res = NumeralSystem::convertTo('9173073869129891730738691298', 62); echo $res . PHP_EOL; // BvepB3yk4UBFhGew $res = NumeralSystem::convertFrom('BvepB3yk4UBFhGew', 62); echo $res . PHP_EOL; // 9173073869129891730738691298 

 //    c  . //       . //   ASCII . $alphabet = '!@#$%^&*()_+=-'; //  base14 $name = 'StrangeSystem'; NumeralSystem::setSystem($name, $alphabet); $number = '9999'; $res = NumeralSystem::convertTo($number, $name); echo $res . PHP_EOL; // $)!$ $res = NumeralSystem::convertFrom($res, $name); echo $res . PHP_EOL; // 9999 


рдордирдорд╛рдиреА рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХрд╛ рдЕрдВрдХрдЧрдгрд┐рдд


рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдмреАрд╕реАрдореИрде рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЖрд╡рд░рдг рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП BCMath рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдЯреАрдХрддрд╛ (1234.2130000000 ...) рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рднрд░рдирд╛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдШрд╛рддрд╛рдВрдХ, рд╡рд░реНрдЧрдореВрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖, рдмрд┐рдЯ рд╢рд┐рдлреНрдЯ, рдЧреЛрд▓рд╛рдИ, рддреБрд▓рдирд╛ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╕рдВрдЪрд╛рд▓рдиред

рдЕрдВрджрд░ рд╕рднреА рдирдВрдмрд░реЛрдВ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдЯ / рдлреНрд▓реЛрдЯ рдкреНрд░рдХрд╛рд░ рднреА рдЗрдирдкреБрдЯ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдлреНрд▓реЛрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд┐рддрдиреА рд╕рдЯреАрдХрддрд╛ рдЦреЛ рдЧрдИ рдереАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреАрд╕реАрдПрдорде рд╕реНрддрд░ рдкрд░ рдШрд╛рддреАрдп рд╕рдВрдХреЗрддрди (12e26, 12e -26 ) рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрдзрд┐рдХрддрдо рдЙрдкрд▓рдмреНрдз рд╕рдЯреАрдХрддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рддрд▓рд╛рд╢рдиреА рдереА, рдЗрд╕рд▓рд┐рдП рдЗрдирдкреБрдЯ рдкрд░ рд╕рднреА рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕рдЯреАрдХрддрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред

рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг


 //        - 20 (  100) $number = new BigNumber('118059162071741130342591466421', 20); //  $number->divide(12345678910); echo $number . PHP_EOL; // 9562792207086578954.49764831288650451382 //          //    : // 1) HALF_UP -      *.5 ( ) // 2) HALF_DOWN -      *.5 // 3) CUT,     ,     //  ,    BigNumber::ROUND_*  //    PHP - PHP_ROUND_HALF_UP, PHP_ROUND_HALF_DOWN $number->divide(9876543210)->round(3, PHP_ROUND_HALF_DOWN); echo $number . PHP_EOL; // 968232710.955 

 //   $number = new BigNumber(10); echo ($number->compareTo(20) < 0) . PHP_EOL; // 1 echo $number->isLessThan(20) . PHP_EOL; // 1 $number = new BigNumber(20); echo ($number->compareTo(10) > 0) . PHP_EOL; // 1 echo $number->isGreaterThan(10) . PHP_EOL; // 1 $number = new BigNumber(20); echo ($number->compareTo(20) === 0) . PHP_EOL; // 1 echo $number->isLessThanOrEqualTo(20) . PHP_EOL; // 1 

 //  .     . $number = new BigNumber("9,223 372`036'854,775.808000"); echo $number . PHP_EOL; // 9223372036854775.808 

 //       62-   $number = new BigNumber('9223372036854775807'); $number = $number->pow(2)->convertToBase(62); echo $number . PHP_EOL; // 1wlVYJaWMuw53lV7Cg98qn 


рд╕рдВрджрд░реНрдн



рдпреБрдкреАрдбреА:
рдПрдХ рдЫреЛрдЯрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрджреНрдпрддрди рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдХреЗрд╡рд▓ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЖрджрд┐рдо рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг, рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рд╣реЛ рддреЛ рдмреАрд╕реАрдПрдорде рдпрд╛ рдЬреАрдПрдордкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ AzaGroup.ru рдкрд░ рдЦреБрд▓реЗ рдШрдЯрдХреЛрдВ рдХреЗ рдирдП рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In168935/


All Articles