HDU 2031 进制转换(进制转换)

Description
输入一个十进制数N,将它转换成R进制数输出
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)
Sample Input
7 2
23 12
-4 3
Sample Output
111
1B
-11
Solution
进制转换,每次将N%R压进栈中,把N R进制拆分后从栈顶那元素,如果小于10则直接输出即可,如果大于10则将其转化为字母输出(+55即可)
Code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<stack>
using namespace std;
int main()
{
    int n,r;
    while(scanf("%d%d",&n,&r)!=EOF)
    {
        if(n<0)
            printf("-"),n=-n;
        stack<int> s;
        while(n)
        {
            int temp=n%r;
            s.push(temp);
            n/=r;
        }
        while(!s.empty())
        {
            int temp=s.top();
            s.pop();
            if(temp<10)
                printf("%d",temp);
            else
                printf("%c",temp+55);
        }
        printf("\n");
    }
    return 0;
}
### 将FITS图像文件转换为MAT格式 为了实现将FITS图像文件转换为MAT格式的功能,在Python和Matlab中都有相应的库可以完成这项工作。 #### 使用Python进行转换 在Python中,`astropy.io.fits`模块提供了读取FITS文件的能力,而`scipy.io.savemat`则用于保存数据到MAT文件。下面是一个完整的例子: ```python from astropy.io import fits import scipy.io as sio import numpy as np # 打开 FITS 文件并获取其数据 with fits.open('example.fits') as hdul: data = hdul[0].data # 假设数据位于主HDU中 # 如果数据不是二维数组,则调整形状 if len(data.shape) > 2: data = np.squeeze(data) # 创建字典来存储变量名及其对应的矩阵 mat_dict = {'fits_data': data} # 保存至 .mat 文件 sio.savemat('output.mat', mat_dict) ``` 这段代码首先加载了一个名为`example.fits`的FITS文件,并从中提取了科学数据部分;接着通过`squeeze()`函数去除多余的维度(如果有的话),最后利用`scipy.io.savemat()`方法把处理后的数据存入一个新的`.mat`文件里[^1]。 #### 使用Matlab进行转换 对于Matlab用户来说,内置的支持包可以直接操作FITS文件。以下是具体的命令序列: ```matlab % 加载 FITS 图像 imageData = fitsread('example.fits'); % 可选:检查或修改 imageData 的属性 % 存储为 MAT 文件 save('output.mat', 'imageData'); ``` 此脚本会从指定路径下的FITS文件中读取出图像信息,并将其作为变量`imageData`保存在一个新的MATLAB二进制文件(`.mat`)之中。 无论是采用哪种编程环境,上述过程都实现了相同的目标——即成功地完成了由FITS向MAT的数据迁移任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值