算法(进制切换)

这是一个用PHP编写的数值转换类,支持十进制、二进制、八进制和十六进制之间的转换。类中包含了各种转换方法,如`binnary_change`、`eight_change`、`ten_change`和`hexadecimal_change`,并在构造函数中初始化转换参数。通过实例化该类并传入数值和目标进制,可以进行进制转换。同时,类还设有错误处理机制,当输入超出精度范围或异常时会返回错误信息。
<?php
class suanfa_number{
  // 十进制
  private $number = 0;
  // 二进制
  private $binary_number = "00000000";

  // 八进制
  private $eight_number = "00000000";
  // 16进制
  private $hexadecimal_number = "00000000";

  private $type = 10;

  private $change_type = 2;

  //返回值
  public $res ;
  public $error = "";

  public function __construct($number,$type = "",$change_type = ""){
    
    if($change_type === $type && $change_type !== ""){
      $this->error =  "出现异常";
    }
    if($type !== ""){
      $this->type = intval($type);
    }
    if($change_type !== ""){
      $this->change_type = intval($change_type);
    }
    if($this->type == 2){
      $this->binary_number = $number;
    }else if($this->type == 10){
      if($number >= 9223372036854775808){
        $this->error = "超出精度,本方法只限制在long整型下";
      }
      $this->number = $number;
    }else if($this->type == 8){
      $this->eight_number = $number;
    }else if($this->type == 16){
      $this->hexadecimal_number = $number;
    }else{
      $this->error = "出现异常";
    }
    
    $this -> run();
  }

  private function run (){

    // 处理二进制
    $this-> number_change();

  }

  private function number_change(){

    if($this->change_type == 2){
      $res = $this -> binnary_change();
    }else if($this->change_type == 8){
      $res = $this -> eight_change();
    }else if($this->change_type == 10){
      $res = $this -> ten_change();
    }else if($this->change_type == 16){
      $res = $this -> hexadecimal_change();
    }else {
      return false;
    }
    $this->res = $res;
  }
  // 切换二进制
  private function binnary_change(){
    // 8 10 16 -> 2
    if($this->type == 10){
      return decbin($this->number);
    }else if($this->type == 8){
      $this->number = $this-> ten_change();
      return decbin($this->number);
    }else if($this->type == 16){
      $this->number = $this-> ten_change();
      return decbin($this->number);
    }
  }

  // 切换八进制
  private function eight_change(){

    if($this->type == 10){
      $res =  decoct($this->number);
    }else if($this->type == 2){
      $this->number = $this-> ten_change();
      $res =   decoct($this->number);
    }else if($this->type == 16){
      $this->number = $this-> ten_change();
      $res =   decoct($this->number);
    }
    return $res ;
  }

  // 切换十进制
  private function ten_change(){
    if($this->type == 2){
      $res =   bindec($this->binary_number);
    }else if($this->type == 10){
      $res =  octdec($this->eignt_number);
    }else if($this->type == 16){
      $res =  hexdec($this->hexadecimal_number);
    }
    if($res >= 9223372036854775808){
      if($this->type == 16){
        $error = "16进制 超出精度";
      }else if($this->type == 10){
        $error = "超出精度,本方法只限制在long整型下";
      }else if($this->type == 2){
        $error = "2进制 超出精度";
      }
      $this->error = $error;
    }
    return $res ;
  }

  // 切换十六进制
  private function hexadecimal_change(){
    if($this->type == 10){
      return dechex($this->number);
    }else if($this->type = 2){
      return bin2hex($this->binary_number);
    }else if($this->type = 8){
      $this->number = $this-> ten_change();
      return bin2hex($this->binary_number);
    }
  }
  
}

// 任意转换
$t1=microtime(true); 

// base_convert(9223372036854775807,10,16);
$suanfa = new suanfa_number("101010101010101001010101010101010100101010101111010",2,10);
$t2=microtime(true);
$time1=$t2-$t1;
var_dump($time1);
var_dump($suanfa->res);
var_dump($suanfa->error);

计及风电并网运行的微电网及集群电动汽车综合需求侧响应的优化调度策略研究(Matlab代码实现)内容概要:本文研究了计及风电并网运行的微电网及集群电动汽车综合需求侧响应的优化调度策略,并提供了基于Matlab的代码实现。研究聚焦于在高渗透率可再生能源接入背景下,如何协调微电网内部分布式电源、储能系统与大规模电动汽车充电负荷之间的互动关系,通过引入需求侧响应机制,建立多目标优化调度模型,实现系统运行成本最小化、可再生能源消纳最大化以及电网负荷曲线的削峰填谷。文中详细阐述了风电出力不确定性处理、电动汽车集群充放电行为建模、电价型与激励型需求响应机制设计以及优化求解算法的应用。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事新能源、微电网、电动汽车等领域技术研发的工程师。; 使用场景及目标:①用于复现相关硕士论文研究成果,深入理解含高比例风电的微电网优化调度建模方法;②为开展电动汽车参与电网互动(V2G)、需求侧响应等课题提供仿真平台和技术参考;③适用于电力系统优化、能源互联网、综合能源系统等相关领域的教学与科研项目开发。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注模型构建逻辑与算法实现细节,同时可参考文档中提及的其他相关案例(如储能优化、负荷预测等),以拓宽研究视野并促进交叉创新。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值