c十進位制轉成八位二進位制的問題,c 編寫程式將十進位制數轉化為八位二進位制輸出(要求用main)

2022-03-07 17:26:10 字數 3979 閱讀 1830

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...