取给定正整数的指定bit位開始的指定长度的数据

  • 接口说明

原型:

unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen)

输入參数:

        input      输入的整数

         startbit   须要获取的開始bit

         bitlen     须要获取的bit长度

输出參数(指针指向的内存区域保证有效):

    

返回值:

        相应的bit取值

举例:

输入:4, 2, 2

返回:2

4相应的二进制为100(bit0和bit1为0,bit2为1)。那么从bit2開始的2位为10,那么相应的十进制为2。


#include <stdlib.h>
#include <string.h>
#include "oj.h"


/*
功能:
    
输入:pIntArray:数组,nCout:数组长度
    
输出:
     
返回:返回最大值
     
*/

int GetSubArraySum(int* pIntArray, int nCount)
{
    /*在这里实现功能*/
      int ThisSum,MaxSum,j;
	  ThisSum = MaxSum =0;
	  for(j = 0;j < nCount;j++)
	  {
	    ThisSum += pIntArray[j];
	    
	    if(ThisSum > MaxSum)
	      MaxSum = ThisSum;
	    else if(ThisSum < 0)
	      ThisSum = 0; 
	  }
  	return MaxSum; 
}</span>

算法思路:

利用整数转换为2进制思路,先将数存入数组。然后读出指定位数.


原文地址:https://www.cnblogs.com/mthoutai/p/7263687.html