1樓:匿名使用者
從左往右算,左邊一位乘以2加上後一位,依次算下去
2樓:匿名使用者
01100000 = 0*2^0+0*2^1+0*2^2+0*2^3+0*2^4+1*2^5+1*2^6+0*2^7 = 96
00101100 = 0*2^0+0*2^1+1*2^2+1*2^3+0*2^4+1*2^5+0*2^6+0*2^7 = 44
01011000 = 0*2^0+0*2^1+0*2^2+1*2^3+1*2^4+0*2^5+1*2^6+0*2^7 = 88
11001010 = 0*2^0+1*2^1+0*2^2+1*2^3+0*2^4+0*2^5+1*2^6+1*2^7 = 202
3樓:倒不下的不倒翁
//不好意思我不知道你學什麼語言,這是pascal的。讀入應該沒有『 』吧,如果有,讀入還要改一下,這裡就不改了。你可以直接複製執行pascal,我都加『//』了。
var a:array[1..100]of longint;
s:string;
len,i,x,n,ans,xlink:longint;
begin
readln(s); //讀入的是字串
len:=length(s); //字串s的長度
//----------------------------------
for i:=1 to len do
val(s[i],a[len-i+1]); //這一段的意思是把這個二進位制的數倒序讀入
//-----------------------------------
n:=0;ans:=0; //計數器初始值
while n0 then //同上
begin
x:=1;
for xlink:=1 to n-1 do x:=x*2; //計算xn的幾次方的值
end;
ans:=ans+x; //項之和組成總和
end;
writeln(ans); //輸出 我跑過01100000,輸出是96,計算機算出來也是96....
end.
//對了,這是一個nlogn的演算法 = =汗,時間有限,將就用吧。還有就是,資料太大會爆記憶體,如果再打的話要上高精度了,那很麻煩的= =汗。所以這個演算法有待改進,就靠你了!!
//求lz給分,我看好你!!純手寫!!求好評~~
計算二進位制 十進位制數,二進位制轉十進位制的演算法怎麼算?
的 應該這樣簡單 先把39轉換成十六進位制 27然後再將那個2的一位變成二進位制的四位 0010再把7那一位變成二進位制的四位 0111 所以39的二進位制就是0010 0111 把這個二進位制數從右到左分組,四位一組為1101 0111 0001 然後把每一組變成十進位制就成了d71h 這樣很快變...
二進位制怎麼轉十進位制,二進位制如何轉化為十進位制
先寫出二進位制各位上代表的數字,然後運用加法即可計算出來。舉例二進位制10101110轉換成十進位制,這個二進位制數是8位的,那麼我們寫出8位二進位制數每位上的數字。最右邊位是個位,無論幾進位制,它都是1 然後寫左邊位是右邊位乘以2得到,因為我們要轉換的是二進位制 轉換n進位制就乘以n好了 這樣寫到...
二進位制和十進位制是什麼,十進位制與二進位制有什麼區別?
二進位制就是逢二進一也就是說每個位的最大值為1例如 100,101,111都是二進位制分別代表十進位制的4,5,7十進位制就是逢十進一也就是說每個位的最大值是9例如 99,88,79等 總結 n進位制就是每個位的最大值為x 1 兩種計數的方式 十進位制和二進位制到底有什麼區別?十進位制與二進位制有什...