sherri 发表于 2008-1-17 15:45

请教如何进行二进制和十进制的转换

怎样从一个01一维数组的元素所组成的二进制数计算出其对应的十进制数?
如 a = ,其中的元素组成的二进制数表示十进制数170
   b = ,其中的元素组成的二进制数表示十进制数240

[ 本帖最后由 eight 于 2008-1-22 19:38 编辑 ]

sigma665 发表于 2008-1-17 15:52

回复 楼主 的帖子

那你是怎么算出a=170的呢

sherri 发表于 2008-1-17 16:42

我自己手工计算的,现在我需要编程实现

sigma665 发表于 2008-1-17 17:46

回复 3楼 的帖子

手工算也有一定的算法吧
你就按照算法编程

sherri 发表于 2008-1-17 18:05

用计算器算的

sigma665 发表于 2008-1-17 18:10

回复 5楼 的帖子

找一本计算机类的基础书
估计都有

sherri 发表于 2008-1-17 18:13

我主要是想知道怎么从数组a = 得到一个二进制数10101010
从b = 得到二进制数11110000

花如月 发表于 2008-1-17 18:15

原帖由 sherri 于 2008-1-17 15:45 发表 http://www.chinavib.com/forum/images/common/back.gif
怎样从一个01一维数组的元素所组成的二进制数计算出其对应的十进制数?
如 a = ,其中的元素组成的二进制数表示十进制数170
   b = ,其中的元素组成的二进制数表示十进制数2 ...
手工算太麻烦了,可以用下边的方法
a = ;
b = sprintf('%d',a);
bin2dec(b)
ans =
   170虽然编程语言不同,会有不同的语法规则。但是一些基本的规则都是相同的,比如二进制用bin,十进制用dec,十六进制用hex等。而在matlab里转换有个特点,就是中间用2(two&to):im2bw,rgb2gray,num2str等等很多类似这样的函数。因此多试下就知道了,我也只凑巧知道有bin2dec函数。以前没用过的:
>> bin2dec
??? Input argument "s" is undefined.
Error in ==> bin2dec at 22
if iscellstr(s)   %这个错误提示,至少说明存在此函数
>> help bin2dec
BIN2DEC Convert binary string to decimal integer.
    X = BIN2DEC(B) interprets the binary string B and returns in X the
    equivalent decimal number.

    If B is a character array, or a cell array of strings, each row is
    interpreted as a binary string.
    Embedded, significant spaces are removed. Leading spaces are converted to
    zeros.

    Example
      bin2dec('010111') returns 23
      bin2dec('010 111') also returns 23
      bin2dec(' 010111') also returns 23

    See also dec2bin, hex2dec, base2dec.或者搜索下应该也可以解决,之所以啰唆这么多,是想让告诉大家:多尝试,多搜索。matlab函数很多,谁也不可能记得很全,这就需要根据一定的经验去尝试。

[ 本帖最后由 花如月 于 2008-1-17 18:18 编辑 ]

sherri 发表于 2008-1-17 18:31

非常感谢,一定好好学习!

appleseed05 发表于 2008-1-19 11:52

自己写程序也很好实现啊

a = ;b=0;
for ii=1:length(a)
    b=b+a(ii)*2^(length(a)-ii);
end

就是一个二进制转化啊
页: [1]
查看完整版本: 请教如何进行二进制和十进制的转换