zoukankan      html  css  js  c++  java
  • 杭电 1196

    Lowest Bit

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 7776    Accepted Submission(s): 5715


    Problem Description
    Given an positive integer A (1 <= A <= 100), output the lowest bit of A.

    For example, given A = 26, we can write A in binary form as 11010, so the lowest bit of A is 10, so the output should be 2.

    Another example goes like this: given A = 88, we can write A in binary form as 1011000, so the lowest bit of A is 1000, so the output should be 8.
     

    Input
    Each line of input contains only an integer A (1 <= A <= 100). A line containing "0" indicates the end of input, and this line is not a part of the input data.
     

    Output
    For each A in the input, output a line containing only its lowest bit.
     

    Sample Input
    26 88 0
     

    Sample Output
    2 8
     

    Author
    SHI, Xiaohan
     

    Source
     题意:
    给定一个十进制数字,求转化为二进制后的最后一位
    思路:
    依据位运算能极大地优化程序。求二进制的最低位可依据a&(-a)就能直接求出二进制的最后一位
    代码例如以下:
    <span style="font-size:14px;">#include<stdio.h>
    int main()
    {
    	int n;
    	while(~scanf("%d",&n),n)
    	{
    		printf("%d
    ",n&(-n));
    	}
    	return 0;
    }</span>


  • 相关阅读:
    javap -c 字节码含义
    redis --- lua 脚本实现原子操作
    感想
    AbstractAdvisingBeanPostProcessor---spring aop 处理器
    spring 自定义解析类
    protobuf3 语法解析
    Java设计模式之builder模式
    工厂和抽象工厂模式
    RESTful入门
    RocketMQ入门
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6726845.html
Copyright © 2011-2022 走看看