第二章编程作业 ————C2-2 进制转换

本文提供了三种不同的C++程序实现方式,用于将用户输入的二进制数转换为等值的十进制数。这些示例涵盖了从基本循环到更高级的数学运算和位操作,有助于理解二进制到十进制转换的基本原理。


编程1:

int main()
{
 int a[10] = {0};
 int i, t,sum=0;
 int q=1;
 cout << "输入的二进制长度为:t=";
 cin >> t;
 cout <<endl<< "输入一个长度不大于10的 0 和 1 的二进制数x:";
 for (i = 1; i <= t; i++) {
  cin >> a[i];
 }
 
 for (i = t; i >0; i--) {
  sum += (a[i] )*q;
  cout << sum << ends << q<<endl;
  q *= 2;
  
 }
 cout << "sum is" << sum;
 
    return 0;
}


编程2:

int main()
{
 int t,p=0,sum=0,z;
 cout << "输入长度小于10的二进制:";
 cin >> t;
 while (t != 0) {
  sum += (t % 10)*pow(2, p);
  t /=10;
  p++;
 }
 cout << "输入二进制所得十进制为:" << sum;
 
 
    return 0;
}



扩展:
int main()
{
 int t;
 cout << "输入二进制:";
 cin >> t;

 cout << "输出十进制为:" <<t ;
 cout << dec;

 cout << "输出十六进制为:" << t;
 cout << hex;
 cout << "输出八进制为:" << t;
 cout << oct;
 
 return 0;
 
}


### 如何在YOLOv8中使用C2f-Faster-EMA替换C2f及其性能改 #### 使用C2f-Faster-EMA替换C2f的方法 为了在YOLOv8中应用C2f-Faster-EMA替代原有的C2f组件,需遵循特定流程来集成这些先的特性。具体来说: - **获取并理解源码**:首先应当下载官方提供的YOLOv8项目仓库,并熟悉其目录结构与核心文件的位置。 - **导入新模块**:接着从指定资源处取得经过优化后的`C2f_Faster.py`脚本以及负责指数移动平均处理逻辑的`EMA_attention_module.py`文件[^3]。 - **修改配置文件**:编辑YOLOv8默认使用的`.yaml`配置文档,在适当位置加入指向上述自定义层类别的路径声明,确保训练过程能够识别新的构建单元。 - **调整主程序入口**:最后一步是对启动整个框架运作的主要Python脚本做出相应改动,比如引入必要的外部依赖项、实例化增强版的对象检测器对象等操作。 以下是简化版本的部分代码片段展示如何完成这一转换工作: ```python from models.common import C2f # 原始导入语句 # 修改为如下形式以加载更新过的部件 from custom_modules.C2f_Faster import C2fFaster from EMA_attention_module import EMALayer class YOLOv8Custom(YOLOv8Base): def __init__(self, cfg='yolov8.yaml', ch=3, nc=None, anchors=None): super().__init__(cfg, ch, nc, anchors) self.backbone = nn.Sequential( Conv(ch, 64), C2fFaster(64), # 应用加速型骨干网部分 ... ) self.head[-1].add_module('ema_layer', EMALayer()) # 添加EMA注意力机制至头部 if __name__ == '__main__': model = YOLOv8Custom() ``` #### 性能改分析 采用C2f-Faster代替传统意义上的C2f之后,最显著的变化体现在运算效率方面——得益于PConv技术的应用,有效降低了每秒浮点数运算次数(FLOPs),从而加快了前向传播的速度而不牺牲太多预测质量;与此同时,融入了EMA(Exponential Moving Average)注意机制一步增强了模型对于特征图谱的理解能力,有助于捕捉更加细微的目标轮廓变化,而提升了整体定位精度和分类效果[^1][^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值