1. 程式人生 > >編寫函式: unsigned int reverse_bit(unsigned int value); 這個函式的返回值value的二進位制位模式從左到右翻轉後的值。

編寫函式: unsigned int reverse_bit(unsigned int value); 這個函式的返回值value的二進位制位模式從左到右翻轉後的值。

如:
在32位機器上25這個值包含下列各位:
00000000000000000000000000011001
翻轉後:(2550136832)
10011000000000000000000000000000
程式結果返回:
2550136832

正解 :

/*編寫函式
unsigned int  reverse_bit(unsigned int value);
這個函式的返回值吧value的二進位制位模式從左到右翻轉後的值。
如在32位機器上25這個值包含下列各位:
00000000000000000000000000011001
翻轉後:(2550136832)
10011000000000000000000000000000
*/
#include <stdio.h> 
#include <math.h> 
int reverse_bit(unsigned int value) 
{ 
    int ret = 0; 
    int bit = 0; 
	int i;
    for( i=0; i < 32; i++) 
	{ 
        ret = ret << 1; //左移一位,儲存前一位
		bit = value & 1; //取出最後一位
		value = value >> 1;//值右移,取下一位
		ret = bit | ret; //最後一位賦給ret
	} 
	return ret; 
}
int main() 
{ 
	printf("%u\n",reverse_bit(25)); 
	return 0; 
}

稍微複雜的解法(原創):

#include <stdio.h>
#include <windows.h>
#include <math.h>
/*
	unsigned int reverse_bit(unsigned int value);
	這個函式的返回值value的二進位制位模式從左到右翻轉後的值。

	如:
	在32位機器上25這個值包含下列各位:
	00000000000000000000000000011001
	翻轉後:(2550136832)
	10011000000000000000000000000000
	程式結果返回:
	2550136832
	*/

int bit[32];
//寫一個將翻轉後的二進位制數存放到陣列中
void Reverse_Binary(int value) {
	int tmp = value;
	int i = 0;
	while (tmp != 0) {
		bit[i++] = tmp % 2;
		tmp /= 2;
	}
}
//寫一個計算反轉後二進位制轉化為十進位制整數的函式
unsigned int To_Decimal(int* b, int value) {
	Reverse_Binary(value);
	unsigned int re_value = 0;
	for (int i = 0; i < 32; ++i) {
		if (bit[i] != 0) {
			re_value += pow(2, 31 - i); //倒著加
		}
	}
	return re_value;
}
//寫一個翻轉二進位制數且返回翻轉後整數的函式
unsigned int Reverse_Bit(int value) {
	Reverse_Binary(value);
	return To_Decimal(bit, value);
}

int main() {
	unsigned int re_num = Reverse_Bit(25);
	printf("%u\n", re_num);

	system("pause");
	return 0;
}

在這裡插入圖片描述

相關推薦

編寫函式 unsigned int reverse_bit(unsigned int value); 這個函式返回value二進位制模式左到右翻轉

如: 在32位機器上25這個值包含下列各位: 00000000000000000000000000011001 翻轉後:(2550136832) 10011000000000000000000000000000 程式結果返回: 2550136832 正解 : /*編寫函式 unsig

.編寫函式 unsigned int reverse_bit(unsigned int value); 這個函式返回value二進位制模式左到右翻轉

題目:編寫函式:  unsigned int reverse_bit(unsigned int value);  這個函式的返回值value的二進位制位模式從左到右翻轉後的值。  如:  在32位機器上

編寫函式 unsigned int reverse_bit(unsigned int value); 這個函式返回value二進位制模式左到右翻轉

1.編寫函式: unsigned int reverse_bit(unsigned int value); 這個函式的返回值value的二進位制位模式從左到右翻轉後的值。 如: 在32位機器上25這個值包含下列各位: 0000000000000000000000

C語言 編寫函式 unsigned int reverse_bit(unsigned int value); 這個函式返回 value二進位制模式左到右翻轉

#include<stdio.h> unsigned int reverse_bit(unsigned int value) { int ret = 0; int bit = 0; #include<stdio.h> unsigned int r

編寫函式 unsigned int reverse_bit(unsigned int value); 這個函式返回value二進位制模式左到右翻轉

如: 在32位機器上25這個值包含下列各位: 00000000000000000000000000011001 翻轉後:(2550136832) 10011000000000000000000000000000 程式結果返回: 2550136832 正解 : /

.編寫函式 unsigned int reverse_bit(unsigned int value); 這個函式返回value二進位制模式左到右翻轉

unsigned int reverse_bit(unsigned int value);  這個函式的返回值value的二進位制位模式從左到右翻轉後的值。 如:  在32位機器上25這個值包含下列各位:  000000000000000000000000

編寫函式可求得返回value二進位制模式左到右翻轉

編寫函式:  unsigned int ReverseBit(unsigned int value);  這個函式的返回值value的二進位制位模式從左到右翻轉後的值。  如:  在32位機器上25這個值包含下列各位:  00000000000000

C語言實現函式返回value二進位制模式左到右翻轉

// 函式的返回值value的二進位制位模式從左到右翻轉後的值 例如:在32位機器上25這個值包含下列各位:            00000000000000000000000000011001            翻轉後:(2550136832)           

二次開發過程中發現一個找也找不到的函式file_delete(),有誰知道這個函式,發現刪除遠端附件函式

反正我沒找到,現在刪除檔案就是unlink,我就是刪除一直false; 先測試再說。發現微擎首頁的後臺操作能夠正常刪除新增圖片到七牛雲 (刪一張將圖片連結儲存,隨後到七牛雲端儲存->內容管理裡面找,沒找到就是刪了。)   ==============

c++ 中關於intunsigned int , short的關系與應用

body 目前 整型 color AC wid 比較 lan ont int類型比較特殊,具體的字節數同機器字長和編譯器有關。如果要保證移植性,盡量用__int16 __int32 __int64吧__int16、__int32這種數據類型在所有平臺下都分配相同的字節。所以

intunsigned int

cpp primer  P31 帶符號型別和不帶符號型別   1、除去布林型和擴充套件字元外,其他整型可以劃分為帶符號的(signed)和無符號的(unsigned)兩種。signed型別可以表示正數、負數或0,無符號型別則僅能表示大於等於0的值。 (unsign

無符號整型 unsigned intunsigned long、usigned long long、size_t 比較和格式控制

位數比較 由於資料的長度和平臺相關,所以基於 64 位系統比較。 Windows Linux unsigned int 32 bits/4294967295 32 bits unsigne

一道intunsigned char之間強制型別轉換的題目

設有語句: ``` int a=258,b; unsigned char c; b=c=a; ``` 則b的值為___。 (答案:2)   (一)int 型別和char型別之間強制型別轉換的規則   ```將int型別變數i的值賦給char型別變數c,會將i的值當作一

一道intunsigned char之間強制類型轉換的題目

什麽 ascii c中 pri www edi learn 規則 計算機 設有語句: ``` int a=258,b; unsigned char c; b=c=a; ``` 則b的值為___。 (答案:2) (一)int 類型和char類型之間強制類型轉換的規則

intunsigned等轉換(轉)

1、隱式轉換C在以下四種情況下會進行隱式轉換:       1、算術運算式中,低型別能夠轉換為高型別。       2、賦值表示式中,右邊表示式的值自動隱式轉換為左邊變數的型別,並賦值給他。       3、函式呼叫中引數傳遞時,系統隱式地將實參轉換為形參的型別後,賦給形參。       4、函式有返回值

4. 陣列int[] intArr = new int[]{5,9,3,7,2,6},寫出一個函式可根據傳參(引數為需要獲取的陣列型別1正序排序陣列;2倒序排序陣列;)來進行排序,返回int

4. 陣列int[] intArr = new int[]{5,9,3,7,2,6},寫出一個函式可根據傳參(引數為需要獲取的陣列型別:1:正序排序陣列;2:倒序排序陣列;)來進行排序,返回值為int陣

編寫一個類Rectangle,有長itsLength,寬itsWidth等資料成員,有過載的建構函式Rectangle()、Rectangle(int width,int length)

#include<iostream>using namespace std; class Rectangle{public:   Rectangle() {itsLength=10,itsWidth=5;}   Rectangle(int length ,int

intunsigned等轉換深入理解(二)

1、隱式轉換C在以下四種情況下會進行隱式轉換:       1、算術運算式中,低型別能夠轉換為高型別。       2、賦值表示式中,右邊表示式的值自動隱式轉換為左邊變數的型別,並賦值給他。       3、函式呼叫中引數傳遞時,系統隱式地將實參轉換為形參的型別後,賦給形參

是否是閏年判斷函式BOOL IsLeapYear (int year)

BOOL IsLeapYear (int year) { #if 0     if ((year % 4) == 0)  {         if ((year % 100) == 0)   {             if ((year % 400) == 0)    {                 r

errorAssertion failed ((unsigned)i0 < (unsigned)size.p[0]) in cv::Mat::at

font sig ron err sse mat style assert tro 問題原因: 訪問像素時指針越界造成的 解決辦法: 1、檢查指針下標是否正確 2、row和col是否寫反了error:Assertion failed ((unsigned)i0 < (