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

Binary 从二进制数中删除第一个数字的意义?,binary,Binary,如果你有一个二进制数,比如1010(以10为底是10),就是说除以2将删除第一个数字(使其最终成为010),对吗 基本上,如何删除第一个数字(即,如果二进制数为0或1,那么它将以零结尾)?我不需要代码或任何东西,我只想知道像你除以或乘以2这样的东西 也不考虑二进制数的最左零点。< P>删除一个数字就像把它改为0。将1010更改为0010是通过减去1000:1010-1000=0010来完成的。如果“第一个数字”是指“第一个有效数字”,那么您要查找的是类似于数字而不是(1shl(int(log n

如果你有一个二进制数,比如1010(以10为底是10),就是说除以2将删除第一个数字(使其最终成为010),对吗

基本上,如何删除第一个数字(即,如果二进制数为0或1,那么它将以零结尾)?我不需要代码或任何东西,我只想知道像你除以或乘以2这样的东西


也不考虑二进制数的最左零点。

< P>删除一个数字就像把它改为0。将1010更改为0010是通过减去1000:1010-1000=0010来完成的。

如果“第一个数字”是指“第一个有效数字”,那么您要查找的是类似于
数字而不是(1shl(int(log number/log 2))
,其中
是按位操作,
shl
表示向左移位,
int
表示向下舍入(从不向上舍入)为整数
log
只是一个对数,以任何基数表示(两种情况的基数相同)


如果“第一个数字”是指第n个位置的数字(让最右边的位置为0,从左边开始计数),那么您只需执行编号,而不执行(1个shl位置)
它的工作方式与以10为底的方式相同。没有第一位数字的数字401是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(我们删除小数部分,因为它是整数除法)


有道理吗?如果你对二进制感到困惑,只要想想数字和位置是如何以十为基数工作的,用二的幂代替十的幂。

除以2将删除最低有效位,或从右向左计数的第一位数字。可以通过右移轻松实现
>
从1010中减去1000得到10并不总是显而易见的。你怎么知道它是1000,而不是10000或100?AAAAA 123456789的回答解决了这个问题。