如何快速計算二進制?
如何快速計算一個8位二進制數是1的個數
用移位取位。
#include
int main()
{
unsigned char x;
int i,sum=0;
printf("input x \n");
scanf("%u",&x);
for (i=0;i<8;i++) sum=sum + ((x>>i) & 1);
printf("%d",sum);
return 0;
}
例如:
輸入511 得 8
輸入7 得 3
二進制到十進制怎樣運算?
(注:如"2②"表示2的2次方,"2⑤"表示2的5次方)
1.二進制計數法的概念
人們在日常生活中和生產實踐中,我們接觸到越來越多的數字,創造了分組計數的制度.而我們的生活中,一般採用了"滿十進一"的十進制計數法,我們現在已經熟悉並經常運用這一種計數法了.但也有采用其他計數法.如二進制,六進制,十六進制等計數法.現在就來講一講"二進制"和"十進制"的關係
2.十進制和二進制數的互化
(1)化十進制數為二進制數
<1>比較小的十進制數為二進制數可以用觀察法.
例:化45為二進制數
因為2的0次方,1次方,2次方~~~10次方分別等於1,2,4,8,16,32,64,128,256,512,1024.
所以 45=32+8+4+1=2⑤+2③+2②+1=1*2⑤+0*2④+1*2②+0*2①+1*1=101101(二進制)
<2>一般化法
利用短除法(通常叫做"二除取餘法")
(2)化二進制數為十進制數
這是比較方便的,只需把二進制是寫成展開式;計算即得.
例1 化憨01101(二進制)為十進制數.
101101(二進制)=1*2⑤+0*2④+1*2③+1*2②+0*2①+1*1=32+0+8+4+0+1=45
例 2 化1011010101(二進制)為十進制數.
1011010101(二進制)=1*2⑨+1*2⑦+1*2⑥+1*2④+1*2②+1*1=512+128+64+16+4+1=725
由於我的電腦水平有限,很多東西大不出來,不能很明確地表現出來,我已經把我認為比較重要和簡單的東西表示出來了,如果您還有疑問,我建議您到書店去買一本書:
< <小學數學奧林匹克讀本(最新修訂本)5年級> >(江蘇教育出版社) 小學數學奧林匹克讀本(最新修訂本)5年級>
這本書挺好,我相信您看了會有幫助的.
祝您學習(工作)順利,狗年汪汪!
參考資料:< <小學奧林匹克讀本5年級> > 小學奧林匹克讀本5年級>
二進制是什麼 怎麼算
二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二加法
有四種情況: 0+0=0
0+1=1
1+0=1
1+1=0
0 進位為1
【例1103】求 1011(2)+11(2) 的和
解:
1011+11
1011+11[1]
乘法
有四種情況: 0×0=0
1×0=0
0×1=0
1×1=1
減法
0-0=0,1-0=1,1-1=0,0-1=1。
除法
0÷1=0,1÷1=1。
拈加法
拈加法二進制加減乘除外的一種特殊算法。
拈加法運算與進行加法類似,但不需要做進位。此算法在博弈論(Game Theory)中被廣泛利用
計算機中的十進制小數轉換二進制
計算機中的十進制小數用二進制通常是用乘二取整法來獲得的。
比如0.65換算成二進制就是:
0.65 × 2 = 1.3 取1,留下0.3繼續乘二取整
0.3 × 2 = 0.6 取0, 留下0.6繼續乘二取整
0.6 × 2 = 1.2 取1,留下0.2繼續乘二取整
0.2 × 2 = 0.4 取0, 留下0.4繼續乘二取整
0.4 × 2 = 0.8 取0, 留下0.8繼續乘二取整
0.8 × 2 = 1.6 取1, 留下0.6繼續乘二取整
0.6 × 2 = 1.2 取1,留下0.2繼續乘二取整
.......
一直循環,直到達到精度限制才停止(所以,計算機保存的小數一般會有誤差,所以在編程中,要想比較兩個小數是否相等,只能比較某個精度範圍內是否相等。)。這時,十進制的0.65,用二進制就可以表示為:1010011。
還值得一提的是,在計算機中,除了十進制是有符號的外,其他如二進制、八進制、16進制都是無符號的。
在現實生活和記數器中,如果表示數的“器件”只有兩種狀態,如電燈的“亮”與“滅”,開關的“開”與“關”。一種狀態表示數碼0,另一種狀態表示數碼1,1加1應該等於2,因為沒有數碼2,只能向上一個數位進一,就是採用“滿二進一”的原則,這和十進制是採用“滿十進一”原則完全相同。
1+1=10,10+1=11,11+1=100,100+1=101,
101+1=110,110+1=111,111+1=1000,……,
可見二進制的10表示二,100表示四,1000表示八,10000表示十六,……。
二進制同樣是“位值制”。同一個數碼1,在不同數位上表示的數值是不同的。如11111,從右往左數,第一位的1就是一,第二位的1表示二,第三位的1表示四,第四位的1表示八,第五位的1表示十六。
所謂二進制,也就是計算機運算時用的一種算法。二進制只由一和零組成。
比方說吧,你上一年級時一定聽說過“進位筒”(“數位筒”)吧!十進制是個位上滿十根小棒就捆成一捆,放進十位筒,十位筒滿十捆就捆成一大捆,放進百位筒……
二進制也是一樣的道理,個位筒上滿2根就向十位進一,十位上滿兩根就向百位進一,百位上滿兩根…… 二進制是世界上第一臺計算機上用的算法,最古老的計算機裡有一個個燈泡,當運算的時候,比如要表達“一”,第一個燈泡會亮起來。要表達“二”,則第一個燈泡熄滅,第二個燈泡就會亮起來。
二進制就是等於2時就要進位。
0=00000000
1=00000001
2=00000010
3=00000011
4=00000100
5=00000101
6=00000110
7=00000111
8=00001000
9=00001001
10=00001010
……
即是逢二進一,二進制廣泛用於最基礎的運算......
大學計算機基礎計算題,數制之間的轉換怎麼做???二進制到十進制,十進制到六進制,怎麼算???快速的
二進制 2的n次方 0 1 2 3 4 5 6 7 => 1 2 4 8 16 32 64 128
00000001(2) = 1(10)
00000010(2) = 2(10)
00000100(2) = 4(10)
00001000(2) = 8(10)
00010000(2) = 16(10)
00100000(2) = 32(10)
01000000(2) = 64(10)
10000000(2) = 128(10)
下方是隨便舉例:
00000011(2) = 1+2=3(10)
01010100(2) = 64+16+4 = 84
有一個規律,會發現,2+8=10; 4+16=20; 8+32=40........
十進制轉二進制(從大位往小位找):
43 = 32+8+2+1 = 00101011
109=64+32+8+4+1= 01101101
2的二進制怎麼算?
兩種方法:
1、第一步:除二取餘,2/2=1......0,1/2=0......1,所以得到01;
第二步:倒序排列,得到10;
第三步:高位補零,得到00000010;
2、1的二進制是00000001,滿2進1,
2的二進制就是00000010.
手打,滿意請採納^_^
二進制的與計算怎麼算?
與?邏輯上來說,假如有兩個簡單命題A和B,還有一個複合命題A與B。那麼複合命題A與B的值就跟A的值和B的值有關。當且僅當A和B都為真時,A與B為真。在二進制中,一般是0為假,1為真,所以如果是1與1的話,結果就是1。其他的,如0與1,1與0,0與0的結果都是0...假設有一個數是11001,另一個是01101,那麼它們與的結果福是:01001.對應的位做與運算就能得到結果。