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>


  • 相关阅读:
    Unity学习
    C#文件操作
    Unity3D XLua热更新流程
    Unity编辑器扩展
    Unity性能优化
    Unity热更新 xLua
    Unity热更新 AssetBundle
    Quickcocos从安装到打包
    EasyTouch5插件使用 EasyTouch手势检测功能
    PHP CURL HTTPS内存泄露问题
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6726845.html
Copyright © 2011-2022 走看看