MATLAB 整數小數負數十進位制轉換為十六進製制

2021-10-23 19:59:01 字數 1436 閱讀 8620

matlab 整數小數負數十進位制轉換為十六進製制

function [output] = transfor(input,precision)

% tans d to h

absinput= abs(input);

intquot = fix(absinput);

decimal = absinput - intquot;

decquot = decimal;

%%%%

interset = '';

decset = '';

hex=['1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','0'];

%%整數部分

if intquot == 0

interset = '0';

else

while intquot ~= 0

intres = rem(intquot,16);

intquot =fix(intquot/16);

if intres == 0

interset = strcat(hex(16),interset);

else

interset = strcat(hex(intres),interset);

endend

if input < 0

interset = strcat('-',interset);

end

end%%小數部分

if decquot ~= 0

i = -1;

simulate = 0;

while 1

a = decquot*16;

decres = a - fix(a);

decquot = fix(a);

if decquot == 0

decset = strcat(decset,hex(16));

else

decset = strcat(decset,hex(decquot));

endsimulate = simulate + decquot*16^(i);

precis = decimal - simulate;

if precis < precision %精度,例:1e-5

break;

endi = i - 1;

decquot = decres;

endoutput = strcat(interset,'.',decset);

else

output = interset;

endend

效果:整數小數負數都可以,小數可以自己調精度

Matlab 十進位制負數轉換十六進製制,簡單實用

需要對乙個數字矩陣進行乙個資料的歸一化,把十進位制數最終轉化成3個位元的十六進製制,也就是24位的數。直接用 函式 dec2hex 因為有負數和小數的存在,需要額外的處理,小數還比較好解決,根據設計,直接四捨五入取整就好,不需要保留小數。對於負數轉十六進製制,matlab沒有相關的函式可以直接轉換。...

十進位制整數與二進位制整數 十六進製制整數之間的轉換

十進位制整數 如85 要轉換成二進位制我們最原始的方法呢就是短除法,但是當這個十進位制數比較大時短除法就有些麻煩了。其實可以這樣來計算 如85 64 16 4 1 2 6 1 2 4 1 2 2 1 2 0 1,二進位制最低位從第0位開始 以8位二進位制為例 式子中2的冪次對應第幾位第幾位就寫上1,...

十進位制度分秒lisp函式 十進位制與度分秒轉換

年月日 surda 在正弦表示式 sin a 中,我們知道 a代表是弧度數。那計算角度 30 正弦值公式為 sin radians 30 由此知道函式 radians 可以將角 度轉化成弧度。但在實際的工程測量中用到的是度 分 秒 如 126 12 36 來記錄並進行計算的,在excel 中怎樣用這...