matlab二進位制十進位制轉化問題

2021-03-04 00:47:16 字數 4006 閱讀 9199

1樓:匿名使用者

二進位制轉換為十進位制有現成的函式:bin2dec

matlab二進位制轉十進位制

2樓:匿名使用者

可以復用fread讀取二進位制制檔案

比如:fid = fopen('***.bin');

m = fread(fid, 'uint8');

fclose(fid);

將二進位制資料按bai八位無符號整數讀入dum,為乙個向量,若知道zhi長寬:

fid = fopen('***.bin');

m = fread(fid, [rows, cols], 'uint8');

fclose(fid);

顯示影象可dao用image函式

如何使用matlab將txt中的許多2進製數轉換為10進製數

3樓:匿名使用者

a=textread('c:\a.txt','%s')';%以字元形式開啟檔案

alpha=hex2dec(a)'; %16進製制轉化為10進製數,存入alpha矩陣

dlmwrite('c:\b.txt',alpha,'delimiter', ' ') %將得出資料存入新的b.txt文件

你可以參考一下啊。很容易的哈。

4樓:

舉例說明。假設有乙個txt檔案如下,檔名是bin.txt。

0001

0101

0010

1001

matlab處理思路:

首先開啟txt檔案,並把資料讀到字串變數中。使用的命令是fopen和fread。

然後,把二進位制每個資料分隔開(這就要根據txt檔案中不同的分隔方式處理,我給的例子是換行符,其他的也可能是空格,也可能是分號等),並且分別轉換為十進位制,用命令bin2dec。

編寫乙個m檔案如下。注意要與bin.txt檔案放在同乙個目錄下,執行即可。

fid = fopen('bin.txt', 'r');

c = fread(fid, '*char')';

n=4; %%這裡設定二進位制的位數

for i=1:floor(length(c)/(n+2))+1

decimaldata(i)=bin2dec(c((i-1)*(n+2)+1:(i-1)*(n+2)+n));

enddecimaldata

得到結果:

decimaldata =

1 5 2 9

matlab怎麼把十進位制轉化為二進位制

5樓:

你可以使用這樣的命令

dec2bin(bin2dec(\\'10\\'),4)

就是先轉化為十進位制,然後再轉化為42位的二進位制

matlab利用向量和函式檔案將十進位制正整數轉化成二進位制並直接在函式中輸出 50

6樓:匿名使用者

function mydec2bin(d)symbols = '01';

max_len = round (log(d)/log(2)) + 1;

digits = zeros (1, max_len);

for k = max_len:-1:1

digits(:,k) = mod (d, 2);

d = round ((d - digits(:,k))/2);

enddisp(num2str(symbols(digits+1)));

endfor i=1:100

mydec2bin(i)end

7樓:匿名使用者

十進位制整數轉二進位制直接用dec2bin就可以了,不知題主遇到什麼困難了?

在matlab中如何進行負數的數制轉換 比如想把十進位製數-10轉化為二進位製數?

8樓:

clear;

clc;

x=-1;

%% 補碼的

方式l=4; % 有效位數

k=2^l;

if x>=0

out=de2bi(x,l,'left-msb');

out=[0 out];

else

y=x+k;

out=de2bi(y,l,'left-msb');

out=[1 out];

endout

%% 原碼的方式

l=4; % 有效位數

if x>=0

out=de2bi(x,l,'left-msb');

out=[0 out];

else

y=-x;

out=de2bi(y,l,'left-msb');

out=[1 out];

endout

9樓:乄隨訫隨妳動

#include stdio.h

#include stdlib.h

void main()

l1: for(j=0;i=0;i--,j++)printf("轉換後::");

for(i=0;ij;i++)

printf("\n");

system("pause");}

我有這樣乙個檔案,檔案是有符號的二進位制資料,想使用matlab轉換成十進位制資料

10樓:匿名使用者

^% 讀入文

bai件(假du定zhi檔案dao

名為zd502097043.txt)

版cstr = textread('zd502097043.txt','%s');

n = length(cstr);

d = zeros(n,1);

for i=1:n

s = bin2dec( cstr(1) ); % 符號權d(i) = bin2dec( cstr(2:end) ) * (-1)^s;

endd

11樓:匿名使用者

% 讀入檔案(bai假定檔名du為data.txt)cstr = textread('data.txt','%s');

m = length(cstr);

n = length(cstr);

d = zeros(n,1);

for i=1:n

s = bin2dec( cstr(1) ); % 符號if s==1

d(i)=bin2dec(cstr)-2^m;

else

d(i) = bin2dec( cstr ) ;

endend

此乃正zhi解,上面的dao答案錯的,回負數的二進位制是補碼答

matlab 怎麼樣將十進位制小數轉化為二進位制?

12樓:悠悠

比如你要將234.5轉換為2進製,保留10位小數n=234.5;

m=10;%保留10位小數

d=n*2^m;

[f,e]=log2(d);

a=char(mod(floor(d*2.^(1-e:0)),2)+'0');

a=[a(1:end-m),'.',a(end-m+1:end)]

matlab 編寫乙個程式實現十進位製數轉換為二進位製數?

13樓:繁華墮落唾棄

十進位製數轉換為二進位製數的matlab實現

14樓:匿名使用者

clear all

close all

clca=input('a=');

a=dec2bin(a)%十進位製數變成二進位製數;

aa=bin2dec(a)%二進位製數變成十進位製數;

15樓:匿名使用者

a=』hello』; b=dec2bin(a,8); c=b』; d=c(:); e=bin2dec(d);

二進位制轉十進位制,二進位制轉化為十進位制的演算法?

有符號數的話,最高位為1 就是最左邊那個 表示負數,這時候就要按位取反再加1,得出來的二進位制正常翻譯成十進位制,然後結果就是負的那個數。無符號數,或者最高位為0的話,直接轉換就行了。二進位制轉化為十進位制的演算法?從最抄低位 最右 算起襲,位上的數字乘以本位的權重。bai,權重就du是2的第幾位的...

二進位制如何轉化為十進位制?二進位制怎樣轉換為十進位制?

二進位制是一種由0和1組成的數字系統,而十進位制是一種由0到9這10個數字組成的數字系統。將乙個二進位製數轉化為十進位制,可以使用以下方法 從二進位製數的最右邊 即最低位 開始,將每一位的值乘以2的冪,冪的指數從0開始逐次增加1。將每一位的乘積相加,得到最終的十進位製數。例如,將二進位製數10110...

matlab中十進位制轉換為二進位制

n 1.025 m 11 保留11位小數 a dec2bin n 2 m a a 1 end m a end m 1 end matlab 編寫乙個程式實現十進位製數轉換為二進位製數?十進位製數轉換為二進位製數的matlab實現 clear all close all clca input a a ...