代码:

%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Problem 6.24 \n\n'); banner();
%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D = [1001, -63, -449, 978, -205]; fprintf('\nConvert a Sign-Magnitude Format Decimal integer D to its binary representation B! \n');
fprintf('\n %5d binary representation is :-- %20s -- \n', D(1), sm2bin(D(1)) );
fprintf('\n %5d binary representation is :-- %20s -- \n', D(2), sm2bin(D(2)) );
fprintf('\n %5d binary representation is :-- %20s -- \n', D(3), sm2bin(D(3)) );
fprintf('\n %5d binary representation is :-- %20s -- \n', D(4), sm2bin(D(4)) );
fprintf('\n %5d binary representation is :-- %20s -- \n', D(5), sm2bin(D(5)) ); %B = {'1010', '011011011', '11001', '1010101', '011011'};
%B = char('1010', '011011011', '11001', '1010101', '011011');
%B = ['1010'; '011011011'; '11001'; '1010101'; '011011']; B1 = '1010';
fprintf('\nConvert a binary representation B to its Sign-Magnitude Format Decimal integer D! \n');
fprintf('\n --%15s-- Sign-Magn representation is : %10d \n', B1, bin2sm(B1) ); B2 = '011011011';
fprintf('\n --%15s-- Sign-Magn representation is : %10d \n', B2, bin2sm(B2) ); B3 = '11001';
fprintf('\n --%15s-- Sign-Magn representation is : %10d \n', B3, bin2sm(B3) ); B4 = '1010101';
fprintf('\n --%15s-- Sign-Magn representation is : %10d \n', B4, bin2sm(B4) ); B5 = '011011';
fprintf('\n --%15s-- Sign-Magn representation is : %10d \n', B5, bin2sm(B5) );

  用到的子函数sm2bin

function B = sm2bin(D);
% Convert a Sign-Magnitude format Decimal integer D
% to its binary representation B
% ----------------------------------------------------------
% B = sm2bin(D)
% D = sign-magnitude format decimal integer
% B = binary representation
%
% s = sign(D); % sign of D (-1 if x<0, 0 if x=0, 1 if x>0)
sb = (s < 0); % sign-bit (0 if x>=0, 1 if x<0)
B = strcat( num2str(sb), dec2bin( abs(D) ) );

  另一个子函数bin2sm

function D = bin2sm(B);
% Convert a binary representation B to its
% Sign-Magnitude format Decimal integer D
% ----------------------------------------------------------
% D = bin2sm(B)
% D = sign-magnitude format decimal integer
% B = binary representation
%
%
%B = num2str(B)
sb = str2num( B(1) ); % sign-bit (0 if x>=0, 1 if x<0) if sb == 0
D = (1-sb) * bin2dec( B(2:length(B)) ); % or D = bin2dec( B(2:1:length(B)) )
elseif sb == 1
D = -bin2dec( B(2:length(B)) );
end

  运行结果:

第6章的习题我就做到这里了,剩下的不会,以后开始第7章。

最新文章

  1. oracle kill session
  2. Unity 5.3 安装完没有Android(安卓)或IOS Module(模块)?
  3. JAVA中堆栈和内存分配
  4. 网页js生成当前年月日 星期
  5. MongoDB主从配置
  6. poj2114 Boatherds
  7. C# 如何获取当前应用程序的父目录
  8. 读取cc2530节点的设备类型、协调器、路由器、终端。
  9. shiro进行散列算法操作
  10. python-文件操作和集合
  11. 编译GDAL支持MySQL
  12. C#多线程和异步(二)——Task和async/await详解
  13. Zookeeper环境搭建
  14. MAVEN_day01 下载与安装及环境变量的配置
  15. .NET手记-Autofac进阶(注册的概念 Registering Concepts)
  16. 使用Django创建网站项目&lt;二&gt;
  17. Android Studio 超级简单的打包生成apk
  18. Maven、SpringBoot框架结构优化
  19. mysql存储引擎的简介
  20. React onPaste &#33719;&#21462;&#31896;&#36148;&#26495;&#30340;&#20540;

热门文章

  1. 使用X-UA-Compatible来设置IE8兼容模式
  2. 【转载】Qt中图像的显示与基本操作
  3. SignalR 前期简单配置
  4. 堆排序,图解,C/C++实现
  5. vue-router-2-动态路由配置
  6. Oracle创建database link(dblink)和同义词(synonym)
  7. 中文datepicker控件
  8. elasticsearch学习笔记——相关插件和使用场景
  9. vuejs 1.x与2.x差异
  10. 2--Python入门--Python数据集合类型--列表