打印进制输出,十进制转十六进制(补码)

//打印进制输出
  	 int A = 9;
     /*按整型输出,默认右对齐*/
     printf("%d\n",A);
     /*按整型输出,补齐4位的宽度,补齐位为空格,默认右对齐*/
     printf("%4d\n",A);
     /*按整形输出,补齐4位的宽度,补齐位为0,默认右对齐*/
     printf("%04d\n",A);
  
     /*按16进制输出,默认右对齐*/   
     printf("%x\n",A);
     /*按16进制输出,补齐4位的宽度,补齐位为空格,默认右对齐*/
     printf("%4x\n",A);
     /*按照16进制输出,补齐4位的宽度,补齐位为0,默认右对齐*/
     printf("%04x\n",A);
		/*按照16进制输出带前缀0X,补齐4位的宽度,补齐位为0,默认右对齐*/
     printf("0X%04x\n",A);

     /*按8进制输出,默认右对齐*/
     printf("%o\n",A);
    /*按8进制输出,补齐4位的宽度,补齐位为空格,默认右对齐*/
     printf("%4o\n",A);
     /*按照8进制输出,补齐4位的宽度,补齐位为0,默认右对齐*/
     printf("%04o\n",A);
%进制转换dec2hex
clc;clear;close all;
%导入数据
load('env_in1.mat');
RXI=real(env_inbf);
RXQ=imag(env_inbf);
% plot(RXI);hold on ;plot(RXQ);
%变换

width = 12;%精度
depth=length(env_inbf); %数据长度
% addr = [0:depth - 1];
RXI_Ts = fix(RXI*(2^width-1)/2 + 0.4999);  %四舍五入
RXQ_Ts = fix(RXQ*(2^width-1)/2 + 0.4999);  %四舍五入
% RXI_T=RXI_Ts;
% plot(RXI_Ts);hold on ;plot(RXQ_Ts);



RXI_Ts(find(RXI_Ts<0))=RXI_Ts(find(RXI_Ts<0)) + 2^width; %求补码
RXQ_Ts(find(RXQ_Ts<0))=RXI_Ts(find(RXQ_Ts<0)) + 2^width; %求补码

%补码恢复
% RXI_TR=RXI_Ts;RXQ_TR=RXQ_Ts;
% RXI_TR(find(RXI_TR>2^(width-1)))=RXI_TR(find(RXI_TR>2^(width-1)))-2^width;
% RXQ_TR(find(RXQ_TR>2^(width-1)))=RXQ_TR(find(RXQ_TR>2^(width-1)))-2^width;
% plot(RXI_TR);hold on ; plot(RXI_T);   %对比下应该一样

file = fopen('RXI_Ts.txt','wt');%该格式对应于mif格式
fprintf(file,'DEPTH=%d;\n',depth);
for i=1:depth
    fprintf(file,'0X%04X;\n', RXI_Ts(i));
end
fclose(file);

file = fopen('RXQ_Ts.txt','wt');%该格式对应于mif格式
fprintf(file,'DEPTH=%d;\n',depth);
for i=1:depth
    fprintf(file,'0X%04X;\n', RXQ_Ts(i));
end
fclose(file);

猜你喜欢

转载自blog.csdn.net/tusiji5286/article/details/106756392