c語言中二進位制指定的某一位數0變1或者1變0並輸

時間 2021-08-30 09:11:23

1樓:餛飩

#define set_bit(val,bit) \

do{\

val |= 1<

2樓:匿名使用者

int fun(int a,int x)

這裡a是要操作的數,x是指定位(從右向左)

3樓:匿名使用者

0變1其它位不變,位或乙個該位為1其它位為0的數可得1變0其它位不變,位與乙個該位為0其它位為1的數可得得到等n位為1其它位為0的數,可用1左移n位即得得到等n位為0其它位為1的數,用前數字反一下即得演示程式:

#include

char*int2bin(int ,char* );

int main()

;char x1b[33]=;

while(1)

else//清0

printf("處理前十進位制:%-10d 二進位制:%s\n", x0,int2bin(x0,x0b));

printf("處理後十進位制:%-10d 二進位制:%s\n\n",x1,int2bin(x1,x1b));

fflush(stdin);

}return 0;

}char*int2bin(int x,char*out)

4樓:sunny鞦韆墜

最後一位1變0,0變1,

例如:32位下

int a;

printf("請輸入a的值");

scanf("%d",&a);

a=a^1;

printf("%d",a);

c語言中,如何求乙個數的二進位制補碼?舉個例子,謝謝!

5樓:老猴子不會胖

正數的補碼是其原值

copy

例如佔乙個bai位元組的10,二du進製為0 000 1010, 第一位0表示+zhi,

補碼也是0 000 1010

負數的話-10, 二進位制dao為1 000 1010, 第一位1 表示-,

補碼求法為 :符號位不變,其餘取反再加1

1 000 1010 取反 1 111 0101再加1: 1 111 0110

6樓:匿名使用者

補碼是反碼

bai加1,把實際資料轉du換為2進製資料,然後zhi把1變dao0,0變1,結果為反碼。再加1就是回補碼。

如:答10101010

反碼為:01010101

補碼為:01010110

也可以認為:從右到左第乙個1為分界線,左邊按位取反,右邊(含本身)不變

c語言中 小數點前、後面的零怎麼控制輸出 比如,0.001-變為.001;200.00變為200;200.1不變。

7樓:

樓主 要的 這個結果?執行下 看看

#include

main()}}

printf("%s\n", str+i);}}

8樓:滄海雄風

你第乙個是0.001- 是嗎 變為 .001第二個是200.00變為200

第三個是200.1 不變?

你到底是什麼規律? 每次規律都不一樣嗎?

你至少該給個規則吧

比如 第乙個 需要小數點後的三位 小數點前的不要第二個 只要小數點前的

第三個 不變

思路就是很簡單的 轉換成字串 根據需求 擷取小數點前後指定的位數

你如果能把你的規則說清楚 我可以給你寫出來

9樓:匿名使用者

#include

#include

int main()

return 0;

}前面沒有0的我做不到

10樓:匿名使用者

自己寫乙個函式,根據數字的小數字數來輸出

11樓:注意樓下

cstring a;

double m;

a.format("%f",m);

if(m!=0)

trimright("0");的意思可以理解為從右開始刪除把文字(cstring)中0,當trimright沒有遇到0時結束,但是當你寫成trimright(".0");時,你會發現一樣能達到取整數的目的,那是因為那時trimright從右開始刪除把文字(cstring)中"0"或者".",當trimright沒有遇到"0"和".

"時結束,但這樣會讓你沒有辦法輸出10的倍數,因為"0"和"."是並列的,當你輸出10的倍數時,trimright會先刪除"."然後刪除"0",所以你得不到10的倍數

c語言中「二進位制指定的某一位數0變1,或者1變0,並輸出該數值」的**是什麼?

12樓:

0變1其它位不變,位或乙個該位為1其它位為0的數可得1變0其它位不變,位與乙個該位為0其它位為1的數可得得到等n位為1其它位為0的數,可用1左移n位即得得到等n位為0其它位為1的數,用前數字反一下即得演示程式:

#include

char*int2bin(int ,char* );

int main()

;char x1b[33]=;

while(1)

else//清0

printf("處理前十進位制:%-10d 二進位制:%s\n", x0,int2bin(x0,x0b));

printf("處理後十進位制:%-10d 二進位制:%s\n\n",x1,int2bin(x1,x1b));

fflush(stdin);

}return 0;

}char*int2bin(int x,char*out)

關於c語言的,這是求二進位制中1的個數的函式,哪位高手說一下每一句的含義!

13樓:

c是記錄1的數量的變數。n&1是把n與二進位制的1按位與,如果結果是1就讓c加1(就是c++這一句),n>>=1是把n按二進位制右移一位。不斷迴圈,直到n==0的時候跳出while迴圈,返回c的值。

好久不用c了,有不準確的地方請見諒。

14樓:

int bitcount(unsigned int n)

return c ;}

15樓:匿名使用者

沒看到**  現寫乙個

int a,count=0;

while (a)   //當a不等於0時進行迴圈printf("the number of /'1/' in binary is %d\n",count);

return 0;

c語言 二進位制轉十六進位制,C語言 二進位制轉十六進位制

看看這個行不行?希望對你有幫助 include stdafx.h include stdio.h include string.h include conio.h include stdlib.h void convert char input,char output for ii nx ii9 0...

二進位制的補碼多少位?8位二進位制補碼計算步驟是什麼

這個,可以自定義。最大的位數,取決於你的計算機,記憶體的大小。8位二進位制補碼計算步驟是什麼?正數 零的補碼,與其數值相同。負數的補碼,用 256 加上該數。補碼的計算步驟,與普通的二進位制計算步驟,完全相同。1 補碼是抄把減法用加法計算,採用進製丟的方法得到結果時應該補足的數。位二進位制補碼的計算...

c語言十進位制轉二進位制,C語言十進位制轉二進位制

何老師 答疑 十進位制轉二進位制可以使用庫函式itoa。itoa函式原型 char itoa int value,char string,int radix 功能 將任意型別的數字轉換為字串。在中與之有相反功能的函式是atoi。nt value 被轉換的整數,char string 轉換後儲存的字元...