1樓:匿名使用者
由於我設計的時候是定義了一個位元組的結構體,所以儲存的只能是以位元組數為單位的,任何位數比較困難,可以解決8的倍數位的,其它的不行,下面是程式,如果要你那種要求那就得另外想演算法,不過一般也沒必要算任意位數吧,就算是記憶體他也是以位元組為單位進行編碼的
不需要計算的演算法:用位段處理,自已好好看看,估計沒有比這個演算法更高效的了
#include
#include
typedef struct
bit;
void dec2bin(int *a,char *b,int n) //儲存n個位元組}}
int main()
,i,n;
char b[200];
memset(b,2,200);
printf("請輸入要轉換的位元組數:\t");
while(scanf("%d",&n),n<=0||n>sizeof(*a))
printf("請重新輸入位元組數\n");
dec2bin(a,b,2);
for(i=0;b[i]!=2;i++)
printf("%d,",b[i]);
printf("\b \n");
return 0;}
2樓:匿名使用者
#include
#include
void dec2bin(int a, int b)}}int main()
;int c[24];
int i;
dec2bin(a,c);
for(i=0;i<24;i++) printf("%d,",c[i]);
3樓:匿名使用者
用bitset好了
#include
#include
using namespace std;
void main()
;string b;
int i;
for(i=0;i<3;i++)
b+=bitset<8>(a[i]).to_string();
cout< c++編寫程式將十進位制數轉化為八位二進位制輸出(要求用main) 一個簡單的c++問題,輸入一個8位二進位制數,將其轉換為十進位制數輸出。 4樓:鮑口恥握 /*首先要知道2轉10進位制的規則: 該位數值(1或0)乘以二的該位位數位數減一次方 比如:二進位制10,轉10進位制則是1*2^1+0*2^0 二進位制110,轉10進位制則是1*2^2+1*2^1+0*2^0 ……這個程式中的power函式作用就是用於計算次方 解釋下power函式: power(double x,int n); 比如2的3次方,則power(2,3)返回2的3次方的值 有了這個函式的話,計算2進位制轉10進位制就非常簡單了 只需要判斷8位數中的哪一位是1,是1的話就加上2的位數-1次方就可以了 比如8位二進位制是11000111 則十進位制value=power(2,7)+power(2,6)+power(2,2)+power(2,1)+power(2,0); 這個步驟可以用迴圈得到 很簡單吧 */#include using namespace std; double power(double x,int ); //宣告power函式,因為power的定義在main之後,main函式要呼叫的話就必須先宣告 void main(void) //輸出結果 cout<<"decimal calue is "< }double power(double x,int n) 5樓:sym_東方不敗 開始定義的i是for迴圈中的迴圈節,作為判斷條件使用; cin的操作在for迴圈中已經進行了8次了 6樓:愛好_問問 開頭定義的 i 和for裡面的 i 是一樣的 cin的操作已經迴圈八次了呀,因為它在for迴圈裡,for(i=7;i>=0;i--)一共迴圈8次 7樓: 兩個i一樣,cin的迴圈了8次啊 二進位制轉十進位制 輸入一個8位二進位制數,將其轉換為十進位制數輸出。c++程式設計 8樓:匿名使用者 #include using namespace std; //計算x的n次方 double power (double x, int n); int main() cout<<"output:\n"; cout << "decimal value is " << value << endl; return 0; }/**********begin****************/double power (double x, int n){int i; double d=1; for(i=0;i "由鍵盤輸入一個小於256的十進位制正整數,然後將該數轉換成八位的二進位制數形式輸出。"的c++程式 9樓:匿名使用者 main() 10樓: #include "stdio.h" int main() else printf("0"); i = i % j; j = j/2; }printf("%d", i);} 11樓:匿名使用者 #include void tobin(char x) for(i = 0; i < 8; i++)printf("\n"); } int main() 12樓:匿名使用者 #include using namespace std; int main() cout << endl;} c++中十進位制和二進位制的轉換問題 13樓:匿名使用者 負數是按照二進位制補碼的形式儲存的 補碼的把法就是絕對值對應的二進位制碼取反加一 24的二進位制碼是 0001 1000 取反是 1110 0111 加一 1110 1000 代表-24 那麼 24 + (-24) 剛好就是 0000 0000, 如果到按無符號數來說和是256 這樣的好處是正負數加加減法和無符號數的加減法規律一樣 計算機在儲存資料的時候是不分什麼型別的 例如計算有符號數 24 + (-24) 和無符號數 24 + 232時 計算機cpu裡面都是操作二進位制的 0001 1000 + 1110 1000 8位結果顯然都是 0000 0000 程式是人為地認為 在做符號數運算的時候是正負抵消結果為0,在做無符號數時是計算溢位 14樓:沁水依依 int型別佔4個位元組,所以-104在記憶體實際表示為:11111111 11111111 11111111 10011000 char佔一個位元組,所以前面3個位元組丟失,只接收到 10011000一個負數轉成二進位制是求它的補碼:求得它對應正數的二進位制,按位取反再加1 要從一個二進位制求對應的整數,一般會告訴你這是正數還是負數吧最後一個問題,你存放一個數,不是第一件事就是定義它的型別嗎,當然是根據你定義的型別來判斷第一位是否是符號位 15樓:禮翼跆拳道 計算機 十進位制和二進位制的轉換 八位二進位制就是由8個bit表示的二進位制碼,可以表示2 8 256個狀態。例如01011010就是一個八位二進位制碼。八位二進位制是什麼意思 八位二進位制就是8個按順序排列的二進位制數。例如 11111000,00000001,00000101等。進位制 binary 在數學和數位電路中指以2為基... 按權,統一轉換我們習慣十進位制進行比較.比如 10101010 2 260 256 8 174 320 10 320 a12 16 2578 是都要轉換成為十進位制嗎?不用,不同進位制相同資料,進位制越大數越大 一個相同的數,16進位制最大,10進位制第二,8進位制第三,2進位制第四 轉換成相同 統... 1 二進位制數 八進位制數 十六進位制數轉十進位制數 有一個公式 二進位制數 八進位制數 十六進位制數的各位數字分別乖以各自的基數的 n 1 次方,其和相加之和便是相應的十進位制數。個位,n 1 十位,n 2.舉例 110b 1 2的2次方 1 2的1次方 0 2的0次方 0 4 2 0 6d 11...什麼是八位二進位制,八位二進位制是什麼意思
二進位制八進位制十進位制十六進位制的不同的數怎麼
二進位制八進位制十六進位制十進位制之間怎樣相互轉化