二进制之间怎样比较大小

如题所述

大小的比较和十进制没什么区别的,不同位数,位数大多的大,相同位数,各个位从左到右数字大的大,或者可以把它们转换为十进制后再比较。

二进制转十进制方法:按权展开求和

规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。

注意:不是任何一个十进制小数都能转换成有限位的二进制数

扩展资料:

二进制数特性

1、如果一个二进制数(整型)数的第零位的值是1,那么这个数就是奇数;而如果该位是0,那么这个数就是偶数。

2、如果一个二进制数的低端n位都是零,那么这个数可以被2n整除。

3、如果一个二进制数的第n位是一,而其他各位都是零,那么这个数等于2^n。

4、如果一个二进制数的第零位到第n - 1位都是1,而且其他各位都是0,那么这个数等于2^n - 1。

5、将一个二进制数的所有位左移移位的结果是将该数乘以二。

参考资料来源:百度百科-二进制

参考资料来源:百度百科-十进制

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-08
  大小的比较和十进制没什么区别的,不同位数,位数大多的大,相同位数,各个位从左到右数字大的大,或者你可以把它们转换为十进制后再比较。

二进制转十进制
  方法:“按权展开求和”
  例: (1011.01)2 =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10
  =(8+0+2+1+0+0.25)10
  =(11.25)10
  规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增,而十
  分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。
  注意:不是任何一个十进制小数都能转换成有限位的二进制数。
第2个回答  2012-04-24
可以直接比,不管是二进制,或者十进制,只是写法不一样而已,程序处理时,一律按照二进制处理的。追问

现有 有符号二进制数,与正的十进制比较大小,怎样先判断它为正数,然后再怎样比较?谢了

追答

如果二进制也是正的,可以直接比;
如果二进制是负的,那么把二进制按位取反,再加1后,再与十进制比大小。

追问

a 是一个读取的有符号二进制数,需要 与 15 比较大小,我是先把正数数判断出来,然后在比较你看我的程序对不?非常感谢

if( (a) & (0x80) != 0x80 )
{
if( (a) |(0x0f) != 0x0f ) M0 = 0;

}

追答

首先确保a是signed char 型变量。
那么你的程序这样写就行了。
if( (a) & (0x80) != 0x80 )//如果是正数
{
if( a>15 ) M0 = 0;
}
不过,你那种写法也对,但很难让人看懂。

本回答被网友采纳
第3个回答  2012-04-24
那就看高位谁是1,那就是谁大。追问

能否给点具体的程序?谢谢