gries / number-system
一个用于处理动态数字系统和转换的PHP库
dev-master
2015-01-10 18:12 UTC
Requires
- ext-gmp: *
Requires (Dev)
- phpspec/phpspec: ~2.1
This package is auto-updated.
Last update: 2024-09-16 21:23:17 UTC
README
此PHP库可用于进行动态数字系统的简单计算。
安装
可以通过Composer安装Number-System。
composer require "gries/number-system"
用法
简单
use gries\NumberSystem\HexadecimalSystem; use gries\NumberSystem\Number; require_once __DIR__.'/../vendor/autoload.php'; $number = new Number(15); // the default system is decimal $hexNumber = new Number('FF', new HexadecimalSystem()); echo $number->add($hexNumber)->value(); // 270 (15 + 255) echo $hexNumber->add($number)->value(); // 10E (F + FF)
自定义数字系统
use gries\NumberSystem\Number; use gries\NumberSystem\NumberSystem; require_once __DIR__.'/../vendor/autoload.php'; $elementalSystem = new NumberSystem(['earth', 'fire', 'air', 'water'], '-'); // diffrent ways of creating a number $number = new Number('fire-earth', $elementalSystem); // 4 $largerNumber = $elementalSystem->buildNumber(['fire', 'air', 'air']); // 26 // define your own number system and number class YoloSystem extends NumberSystem { public function __construct() { parent::__construct(['1337', 'yolo', 'swag'], '¿'); } } class YoloNumber extends Number { public function __construct($value) { parent::__construct($value, new YoloSystem()); } } $foo = new YoloNumber('yolo¿swag¿yolo¿yolo¿yolo¿yolo¿swag'); echo $foo->asDecimalString(); // 1337
转换数学表达式
您可以使用ExpressionConverter
将数学表达式从一个系统转换为另一个系统。
$decimal = new NumberSystem(); $binary = new BinaryNumberSystem(); $converter = new ExpressionConverter(); $decimalExpression = new Expression('(1337 * 7) + sin(5)-2', $decimal); echo $converter->convert($decimalExpression, $binary); // -> (10100111001 * 111) + sin(101)-10
当前限制(也称为待办事项)
- 不支持负数
- 不支持浮点数
- 除法始终四舍五入到0,因为没有支持浮点数;)
运行测试
vendor/bin/phpspec run
贡献!
请通过github issues提供反馈/功能请求/错误报告。或者,只需发送一个pull-request :)
作者
许可证
有关完整的版权和许可信息,请查看与源代码一起分发的LICENSE文件。