把二進位制數x第一位的1變成0C語言程式設計

2021-03-03 20:50:52 字數 2431 閱讀 7064

1樓:充實生活

首先你要知道x是一bai個幾du

個位元組的數,也就是確定x的二

zhi進製位數,dao然後使x按位與上專乙個所有位除了第一位外都為屬1的數。舉例如下,如果x是乙個32位的數值,那麼 x&0xff ff ff fe 就是你要的,0xff ff ff fe二進位制位11111111 11111111 11111111 11111110

2樓:**ile_鎮壓

x=((x>>1)<< 1);

3樓:匿名使用者

讓它與上0xfffe

幫我解決一道c語言程式設計題:將乙個十進位制數轉化為二進位制數,統計該二進位制數中"1"的個數和"0」的個數

4樓:匿名使用者

#include

int main()

c = a;

for(i=0;i<1000;i++)

b[i]=0;

i=0;

while(a!=1)

k=i-1;

printf("十進位制數%d轉成二進位制數為%d",c,a);

for(i=k;i>=0;i--)

printf("%d",b[i]);

printf("\n");

for(i=0;i<=k;i++)

printf("0的個數為%d\n",x0);

printf("1的個數為%d\n",x1);

return 0;

}vc上除錯成功

5樓:匿名使用者

標準數學庫有相應的函式,不知道的時候可以去查下msdn,用索引來查詢.首先自己想到整型為i,字串為

a,自然聯想到itoa,去查下有沒有對應的函式就可以解決問題了.要多多的練習自學能力.

#include

#include

void main()

6樓:匿名使用者

#include

#include

main()

printf( "二進位制數為%s , 1的個數為%d , 0的個數為%d\n" , acbuf , j , i ) ;}

7樓:匿名使用者

#include "stdio.h"

int main()

,m=0,n=0;

printf("input a number between 0 and 255:");

scanf("%d",&number);

while(number)

for(i=1;i<8;i++)

printf("\n");}

c++中怎麼把乙個十進位制數的某乙個二進位制位改為0

8樓:匿名使用者

int change(int x, int n)

先把1左移n位,得到00010000形式的乙個數字,然專後屬取反得到11101111形式的數字

,然後和原來的數進行「位與」操作。與0得0,與1不變。所以第n位就變成0其他位不變。如果你的n是從高位算的,稍微改改就行了。

9樓:讉莣熔燃氺

通過位運bai算可以快速實現。

以下列舉du前四位:

zhi首先 二進位制中dao的 0001 0010 0100 1000

對應十內進製中的 1 2 4 8如果要讓一容個數x的第三位二進位制位變為0 操作為if(x | 4) x^=4; //如果 x在第三位為1 x 異或 0100

關於異或:

0^0=0

0^1=1

1^0=1

1^1=0;

通過位運算來實現二進位制操作是最快速的,用起來也很方便。

10樓:匿名使用者

你構造乙個數,第n位為0,其餘為1,然後與上a就ok了

11樓:匿名使用者

int b=1<

a&=~b;

12樓:匿名使用者

#include

#include

#include

using namespace std;

int main()

13樓:飄飄渺渺夢逍遙

itoa函式最簡單

詳情請看

版百權科

c語言由鍵盤給定乙個正整數n,程式設計實現求該整數對應的二進位制數中1的個數。**等!

14樓:匿名使用者

#include

#include

int main()

二進位制怎麼算,怎麼樣算一個數的二進位制?比如說,36的二進位制是多少?怎麼算的?

18世紀德國數理哲學大師萊布尼茲從他的傳教士朋友鮑威特寄給他的拉丁文譯本 易經 中,讀到了八卦的組成結構,驚奇地發現其基本素數 0 1 即 易經 的陰爻 和 陽爻,其進位制就是二進位制,並認為這是世界上數學進位制中最先進的。20世紀被稱作第三次科技革命的重要標誌之一的計算機的發明與應用,其運算模式正...

用c 編了把十進位制數轉換為二進位制數的程式,但執行結果與預期不符,請高手幫忙糾錯

你的 太亂了 你的思路也是很不清晰了 我介紹寫這類的 思路,我們將整數的二進位制求出,也就是求出每乙個商 包括輸入數 的 2的餘數,然後把這些餘數儲存在陣列b 中 例如 輸入5 那麼執行的思路是 當input不等於1時 b 0 5 2 結果為1,即b 0 1 input input 2 結果為2,即...

在所有由兩個「1」和「0」組成的八位二進位制整數(補碼)中,能表示的最小十進

是 127 原碼是11111111,反碼是10000000,負數的補碼是反碼 1,所以補碼是10000001 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 127。在所有由兩個 1 和6個 0 組成的8位二進位制整數 補碼 中,能表示的最小十進位制數是?10 最小補碼10000001 ...