从二进制数中删除第一个数字的意义?

时间:2013-02-10 07:37:20

标签: binary

如果您的二进制数字为1010(基数为10时为10),则说除以2将删除第一个数字(最终为010),是吗?

基本上你如何删除第一个数字(即如果二进制数是0或1,那么它最终会没有结果)?我不想要代码或任何东西,我只想知道你喜欢分割或乘以2的东西。

也不要考虑任何最左边的二进制数。

3 个答案:

答案 0 :(得分:3)

它的工作方式与十垒相同。没有第一个数字的数字是1.你减去了400,不是吗?现在,要除以10,您将向右移位数字。 401向右移动是040. 401/10 = 40.注意1被丢弃,因为我们正在使用整数除法。

所以在二进制中,它完全相同,但功率为2.删除第一位不会被二除。它减少了其位置的价值。所以没有最大位的101b(4 + 1 = 5)是001b,或1位小数。它是减法:5 - 4 = 1。

要除以2,将位移到右侧,就像在基数10中一样。因此101b将变为010b,即2位小数。 5/2 == 2(我们正在丢弃小数部分,因为它是整数除法)

有意义吗?如果你对二进制感到困惑,那就想想数字&职位以十分之一为基础,而不是十分之一,使用两个权力。

答案 1 :(得分:1)

如果“第一个数字”表示“第一个有效数字”,那么您要查找的内容类似number and not (1 shl (int(log number / log 2))),其中andnot是按位运算, shl表示向左移动,int向下舍入(从不向上)为整数。 log只是一个对数,在任何基础上(两种情况都相同)。

如果用“第一个数字”表示第n个位置的数字(让最右边的位置为0,向左计数),那么你只需number and not (1 shl position)

答案 2 :(得分:-1)

删除数字就像将数字更改为0.将1010更改为0010是通过减去1000:1010 - 1000 = 0010来实现的。