HDU 2031 进制转换

Problem 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

#include <stdio.h>

int main() {
	int n,r,x;
	char a[100];
	while(~scanf("%d%d",&n,&r)){
		int num = 0;
		if(n < 0){	//n小于0就转化为正数在计算 
			n = -n;
			num = 1; 
		} 
		int i = 0;
		int j;
		while(n > 0){
			x = n%r;
			if(x >= 10){
				a[i] = x - 10 + 'A';	//A=10,所以先-10在加上 
			}
			else{
				a[i] = x + '0';	//字符串中不能有数字,所以要将数字转化为字符串
			}
			n = n/r;
			i++;
		}
		if(num == 1) {	//n为负数,前面需要加上负号
			printf("-");
		}
		for(j = i - 1; j >= 0; j--){
			printf("%c",a[j]);
		}
		printf("\n");
	}
	return -1;
}
### 将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、付费专栏及课程。

余额充值