matlab软件里数制相互转换10进制转换成11,12,13,14,15进制,不要其他编程语言,只要matlab里的程序

已知10进制数x,需要将其转换成y进制的数,输出为变量“s”(y=11,12,13,14,15)
求编程代码,主要是不会用A表示10,B表示11……E表示14
最好能给个dec2hex函数的实现过程代码

function h = dec2hex(d,n)
%DEC2HEX Convert decimal integer to hexadecimal string.
%   DEC2HEX(D) returns a 2-D string array where each row is the
%   hexadecimal representation of each decimal integer in D.
%   D must contain non-negative integers smaller than 2^52.
%
%   DEC2HEX(D,N) produces a 2-D string array where each
%   row contains an N digit hexadecimal number.
%
%   Example
%       dec2hex(2748) returns 'ABC'.
%
%   See also HEX2DEC, HEX2NUM, DEC2BIN, DEC2BASE.

%   Copyright 1984-2006 The MathWorks, Inc.
%   $Revision: 5.15.4.8 $  $Date: 2008/08/26 18:22:07 $

bits32 = 4294967296;       % 2^32

if nargin<1
    error(nargchk(1,2,nargin,'struct'));
end

d = d(:); % Make sure d is a column vector.

if ~isreal(d) || any(d < 0) || any(d ~= fix(d))
    error('MATLAB:dec2hex:FirstArgIsInvalid','First argument must contain non-negative integers.')
end
if any(d > 1/eps)
    warning('MATLAB:dec2hex:TooLargeArg',...
        ['At least one of the input numbers is larger than the largest',...
        'FLINT (2^52).\n         Results may be unpredictable.']);
end

numD = numel(d);

if nargin==1,
    n = 1; % Need at least one digit even for 0.
end

[f,e] = log2(double(max(d)));%#ok
n = max(n,ceil(e/4));
n0 = n;

if numD>1
    n = n*ones(numD,1);
end

%For small enough numbers, we can do this the fast way.
if all(d<bits32),
    h = sprintf('%0*X',[n,d]');
else
    %Division acts differently for integers
    d = double(d);
    d1 = floor(d/bits32);
    d2 = rem(d,bits32);
    h = sprintf('%0*X%08X',[n-8,d1,d2]');
end

h = reshape(h,n0,numD)';

自己看看能不能改,不能再联系我

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-28

matlab自带的函数de2bi可以转换10进制到任意进制

clear;clc;


x=22
y=12

s='0123456789ABCDEFGIJKLMNOPQRSTUVWXYZ';%如果需要转换为更高进制,可以自定义对应的字母
s(1+de2bi(x,[],y,'left-msb'))

本回答被提问者和网友采纳

matlab软件里数制相互转换10进制转换成11,12,13,14,15进制,不要其他编...
function h = dec2hex(d,n)%DEC2HEX Convert decimal integer to hexadecimal string.% DEC2HEX(D) returns a 2-D string array where each row is the% hexadecimal representation of each decimal integer in D.% D must contain non-negative integers smaller than 2^52.%% DEC2HEX...

10进制转换成其他数制
十进制转十六进制(Hexadecimal)转换十进制数为十六进制数,可以通过将其除以16并记录余数的方式来实现。对于余数大于9的情况,使用字母A到F来表示10到15。例子:将十进制数`10`转换为十六进制数。1. 10 ÷ 16 = 0 余 10(在十六进制中,10表示为A)然后将余数从下到上(从最后一个除法到第一...

MATLAB里将十进制负小数转换成十六进制数
根据你提到的要求,估计你们的DSP是定点的,因此需要把浮点数转化为定点数计算。把浮点数乘以32768,说明定点数的定标是{1,0,15},即1位符号位,0位整数位,15位小数位。根据这些条件,就可以对浮点数进行转化,程序在附件中,下图为结果:

matlab 利用GUI制作 十进制和BCD的转换
1、BCD编码有多种具体形式,最常见的是8421BCD码,其它还有2421BCD、余三码、格雷码等,这里按照最常见的8421BCD编写。2、为简单计,十进制数和BCD码都由两部分组成:整数部分、小数部分(可选),不考虑按照科学计数法输入十进制数,也不考虑各种各样可能的输入错误。3、暂不考虑负数的转换。4、这里...

matlab中如何将十六进制转换为十进制?
matlab中将十六进制转换为十进制的方法是:a=textread('c:\\a.txt','%s')';%以字符形式打开文件,alpha=hex2dec(a)'; %16进制转化为10进制数,存入alpha矩阵 ,%%%%%%%16进制转10进制。[wenjian_ming,lujing_ming] = uigetfile('c:\\a.txt','导入数据'),fid=fopen(strcat(lujing_ming,...

如何把10进制数转分别换成8进制和16进制数
点开始-运行-calc 点查看-科学型 然后输入你需要转换的数,点八进制(十六进制)就可以得到相应结果了。

随机给个十进制的数,怎么快速计算它的十六进制进制
printf("转换为16进制数为: ");for (;i>=0;i--) \/\/ arr[0]存的是对应16进制的最低位 switch (arr[i]){ case 10: printf("A");break;case 11: printf("B");break;case 12: printf("C");break;case 13: printf("D");break;case 14: printf("E");break;case 15: printf(...

求各种进制互相转换,急高手们快来救命啊
2.十进制和二进制间的转换 (1) 十进制数转换成二进制 将十进制整数转换成二进制整数时,只要将它一次一次地被2除,得到的余数从最后一个余数读起)就是二进制表示的数。2) 二进制数转换成十进制数 将一个二进制数的整数转换成十进制数,只要将按权展开。例:11011=1*24(2的4次方)+1*23(...

计算机 十进制数0-15怎么表示
计算机中数字一般都用二进制表示,也有的用八进制、十六进制表示 十进制:0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15 二进制:0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111 八进制:0、1、2、3、4、5、6、7、10、11、12...

进制转换?
十位……现在二进制数位变成了八位、四位、二位……模仿上面十进制按位权展开的方式,把二进制数1011按权展开: 1011=1×2^3+0×2^2+1×2^1+1×2^0=1×8+0×4+1×2+1×1=8+2+1=11 接下来我们进行十进制往二进制的转换:比较小的数,直接通过拆分就可以转换回去 比如13,我们 ...

相似回答