请教如何进行二进制和十进制的转换
怎样从一个01一维数组的元素所组成的二进制数计算出其对应的十进制数?如 a = ,其中的元素组成的二进制数表示十进制数170
b = ,其中的元素组成的二进制数表示十进制数240
[ 本帖最后由 eight 于 2008-1-22 19:38 编辑 ]
回复 楼主 的帖子
那你是怎么算出a=170的呢 我自己手工计算的,现在我需要编程实现回复 3楼 的帖子
手工算也有一定的算法吧你就按照算法编程 用计算器算的
回复 5楼 的帖子
找一本计算机类的基础书估计都有 我主要是想知道怎么从数组a = 得到一个二进制数10101010
从b = 得到二进制数11110000 原帖由 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 编辑 ] 非常感谢,一定好好学习! 自己写程序也很好实现啊
a = ;b=0;
for ii=1:length(a)
b=b+a(ii)*2^(length(a)-ii);
end
就是一个二进制转化啊
页:
[1]