1. 程式人生 > >【C語言】將二進位制數逆序輸出。比如6為000...0110,逆序後為0110...000

【C語言】將二進位制數逆序輸出。比如6為000...0110,逆序後為0110...000

//將二進位制數逆序輸出。比如6為000...0110,逆序後為0110...000
#include <stdio.h>
unsigned int reverse_bit(int num)
{
	int i;
	int bit;
	unsigned new_num = 0;
	for (i = 0; i < 32; i++)
	{
		bit = num & 1;            //取出最後一位
		new_num <<= 1;            //新數左移
		new_num =new_num | bit;   //把剛取出的一位加到新數
		num >>= 1;                //原數右移,準備取第二位
	}
	return new_num;
}
int main()
{
	printf("%u\n", reverse_bit(0));     
	printf("%u\n", reverse_bit(2147483648));
	printf("%u\n", reverse_bit(3));
	printf("%u\n", reverse_bit(100));
	printf("%u\n", reverse_bit(6));
	return 0;
}

相關推薦

C語言二進位制輸出比如6000...0110,0110...000

//將二進位制數逆序輸出。比如6為000...0110,逆序後為0110...000 #include <stdio.h> unsigned int reverse_bit(int num

c語言一個數的二進位制序列,然後輸出之後的二進位制,所對應的

<pre name="code" class="cpp">// 將一個數的二進位制序列逆序,然後輸出逆序之後的二進位制序,所對應的數 #include <stdio.h> // 從原數拿出最低位,放到mid中,mid左移,原數右移 int r

C語言列印水仙花

題目:用C語言列印1000以內的水仙花數,“所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數本身。             例如:153是一個“水仙花數”,因為153=1^3+5^3+3^3(1的三次方+5的三次方+3

c語言兩個字串連線起來,不要用strcat函式

#include <stdio.h> int main() { char s1[80],s2[40]; int i=0,j=0; printf("input string1:"); scanf("%s",s1); printf("input strin

C語言自己編寫程式實現strchr函式即在給定字串中找特定的字元並返回該處指標

<pre name="code" class="cpp">//自己編寫程式實現strchr函式。即在給定字串中找特定的字元並返回該處指標。 #include <stdio.h>

C語言編寫一個程式顯示當前時間

#include<sys/time.h> #include<time.h> #include<stdio.h> int main() {struct tm *ptm;time_t ts;char tim[50];ts = time(NUL

C語言輸入一個整數,輸出二進位制表示中1的個數(三種方法)

輸入一個整數,輸出該數二進位制表示中1的個數。如輸入32,輸出1.程式碼實現:方法1:與運算#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; int FindOne

c語言依次10個數輸入,要求輸出其中最大的

// 依次將10個數輸入,要求輸出其中最大的數 #include <stdio.h> int main() { int a[10]; int i; int temp; printf("請輸入10個數:"); for( i = 0; i < 1

C語言據對其(內存對齊)

brush size return () def ont http 之間 sign 數據對齊 結構體之間的對齊是有很多種方法的,也是根據你所用的系統位數有關。下面都是以32位系統來講的,32位系統一般以字對齊,字就是系統位數,32位系統則是32位對齊,也就是4字節(in

C語言學習筆記7——指針與多維

一個 聲明 %d mage 分享圖片 技術分享 pan 最好 include 1. 聲明一個指向多維數組的指針 int (* pz) [2]; //pz指向一個內涵兩個int類型元素的數組 int * pax[2]; //pax 是一個內含兩個指針元素的

c語言水仙花

/* 編寫fun函式和主函式 在mian函式中從鍵盤輸入一個三位數,並輸出判斷結果 呼叫函式fun判斷一個三位數是否是水仙花數 */ #include<stdio.h> void main(){ int i,j,k,n; printf("water flowernum

C語言判斷一個數是不是迴文

 所謂迴文數,就是說一個數字從左邊讀和從右邊讀的結果是一模一樣的。 首先,我們來判斷一下一個數是否為迴文數: #define _CRT_SECURE_NO_WARNINGS 1 #include&

C語言輸出100~999之間的所有“水仙花

  “水仙花數”:   “水仙花數”又稱為“阿姆斯特朗數”。如果一個n(n≥3)位數的各位數字的n次冪之和等於該數本身,則該數稱為“水仙花數”。如:153=1³+5³+3³。   問題:輸出100~999之間的所有“水仙花數”。   實現思路:   根據

C語言求一個數的二進位制位模式從左到右翻轉對應的十進位制值

用函式unsigned int reverse_bit(unsigned int value)實現想要的功能 value是我們想要求的值。 #include <stdio.h> #include <math.h> unsigned

c語言給一個不多於五位的正整數: 1.求出它是幾位數 2.分別輸出每一位數字 3.輸出各位數字

#include<stdio.h> #include<math.h> //求出它是幾位數 int Count(int n) { int tmp = 0; while (n != 0) { tmp++; n /= 10;

C語言給定兩個整型變數的值,兩個值的內容進行交換(不同方法)

     給定兩個整型變數的值,將兩個值的內容進行交換,現在我介紹幾種不同的實現方法:法1:在主函式裡實現,這樣操作這兩個值時並未重新開闢空間,直接交換可以達到目的。#include<stdio.h> #include<stdlib.h> int m

c語言要求輸出100~200之間不能被3整除的

// 要求輸出100~200之間不能被3整除的數 #include <stdio.h> int main() { int i; printf("100~200之間不能被3整除的數:\n"); for(i = 100; i <= 200; i++)

C語言求一個數的二進位制中 1 的個數

求一個數的二進位制的1的個數 1,通過模除的方法 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { int i = 0;

C語言兩個int(32位)整數m和n的二進位制表達中,有多少個位(bit)不同

根據異或我們可以知道,兩個數字的二進位制位按位異或,相同為0,相異為1。 因此我們可以通過將兩個數字按位異或,並計算該異或結果中二進位制位中1的個數,即可知道有多少個位元位不同。 int count(int a, int b) { int m = a ^ b; // 兩個數按位異或,對應不

C語言簡單思路找一個數組中重複次數最多的

#include <stdio.h> int main() {     int a[1024];     int b[1024] = {0};                           //初始化每個數出現一次          int i = 0;