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;} ...
去掉最高位,就向左移位 去掉高2位,那么就向左移动8位,去掉低2位,就向右移动8位。
可以先用一个if语句判断一下输入整数的位数,然后再将输入的数据除以一定的数,如输入2562 先判断出是四位数,然后再除以1000,就变成2.562了,赋给一个整形变量自然得到最高位了
取,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&0000000000000000000000000000...
C语言取二进制最高位1 未定义文章分类 //find the Power of 2 that Greater than or Equal to x uint32_tp2ge(uint32_tx) { --x; x=x|(x>>1); x=x|(x>>2); x=x|(x>>4); x=x|(x>>8); x=x|(x>>16); returnx+1;...
main(){ int a,i,j; srand(time(0));//让产生的随机数会变动而不固定,这个不用多讲 for(i=0;i1000&&a<9999)//进行判断,若产生的随机数符合条件,将其输出,成功次数增加一次 { printf("%d\n",a); i++; } } system("pause");}首先结果:...
int temp = num;int count = 1;int res1 = 0,res2 =0;while(temp / 10 != k -1){ temp = temp/10;count *= 10;} res1 =temp;res2 = num - res1 *count;printf("k = %d, n = %d, m = %s",k,res1,res2);//大致思路了,具体值对不对还要compile下,楼主试试吧...
用与运算符和移位运算符搞定。比如取一个32位int类型A的高8位,放到int类型B的低8位,如下操作。A & 0xF000 取得高8位,其他位清零 (A & 0xF000) >> 24 左移24位,只留下高8位。B & 0xFFF0 低8位清零 (B & 0xFFF0) | ((A & 0xF000) >> 24) 这个样子即可。
用c语言实现.返回结果 intn , int m要求,把num中的最高k位提取出来,并保存到n中,并把剩下的位保存到m中.【希望可以用纯算术运算得出结果】.(【即不可以把num转为字符串,然后提取,只能用加减乘除等算术运算】.)比如,
和00000001按位与(&) 强制转换成要赋值的类型,最高位同理