C语言取一个数的最高位

Python016

C语言取一个数的最高位,第1张

#include <stdio.h>

int main()

{

    int num

    printf("input a num : ")

    scanf("%d", &num)

    if (num < 0)

        num = -num

    while (num > 10)

        num /= 10

    printf("highest order : %d\n", num)

    return 0

}

取,int a=b&0xf09(b为提取对象),最地位int

a=b&0x0f(b为提取对象),long型是4字节伱可以这样,long a=b&0xf000,long

a=b&0x000f还有什么再问

那稍加修改:int a=b&1000000000000000b,int

a=b&0000000000000001b,long

a=b&10000000000000000000000000000000b,int

a=b&00000000000000000000000000000001b这是2进制数的位操作,虽然看起来麻烦,但是效率最高

可以先用一个if语句判断一下输入整数的位数,然后再将输入的数据除以一定的数,如输入2562

先判断出是四位数,然后再除以1000,就变成2.562了,赋给一个整形变量自然得到最高位