程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言之二進制位翻轉,難難難!!!

C語言之二進制位翻轉,難難難!!!

編輯:關於C語言

C語言之二進制位翻轉,難難難!!!


問題描述:   編寫函數: unsigned int  reverse_bit(unsigned int value); 這個函數的返回 值value的二進制位模式從左到右翻轉後的值。 如: 在32位機器上25這個值包含下列各位: 00000000000000000000000000011001 翻轉後:(2550136832) 10011000000000000000000000000000 程序結果返回:           2550136832   代碼實現:  
#include <stdio.h>
#include <math.h>
unsigned int  reverse_bit(unsigned int value)
{
 int i=0;
 unsigned int sum=0;
 for(i=0;i<32;i++)
 {
  sum+=((value>>i)&1)*pow(2,31-i);
 }
 return sum;
}
int main()
{
 unsigned int value=25;//00000000 00000000 00000000 00011001
 int ret=reverse_bit(value);
 printf("%u\n",ret);
 return 0;
}

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved