C語言 十進位制轉二進位制,並儲存在陣列中

2021-08-21 21:51:13 字數 1280 閱讀 8007

#include #define uint unsigned int

#define ushort unsigned short

uint transform_data(uint frequence,ushort* pwm_table)

return pwm_index;

}int main();

uint off_set;

off_set = transform_data(frequence,pwm_table);

int i=0;

for(i=off_set-1;i>=0;i--)

return 0;

}//輸出結果:10

以前寫的時候,總是想著要對2取餘,再除2,今天看到別人寫的程式,才想起來,直接取他的最低位,然後右移就是除2。(~o ̄3 ̄)~

上次寫的只能轉換正數,現在又把負數加上去了,感覺程式寫的太繁瑣了,有沒有更簡單的方法。

#include #define uint unsigned int

#define ushort unsigned short

//求2的n次方

int cifang(int n)

return sum;

}//十進位制正數轉換成二進位制數

uint transform_data_zhengshu(uint frequence,ushort* pwm_table)

return pwm_index-1;

}uint transform_data(int frequence,ushort* pwm_table)

; //負數

if(frequence<0)

//將轉換出來的十進位制數sum加一

sum += 1;

//printf("sum=%d\n",sum);

//最後再轉成二進位制pwm_table

return transform_data_zhengshu(sum,pwm_table); }

//正數

return transform_data_zhengshu(frequence,pwm_table);

}int main();

uint off_set;

off_set = transform_data(frequence,pwm_table);

int i=0;

for(i=off_set;i>=0;i--)

return 0;

}

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

在一些高階語言中都有現成的將各種進製之間的轉換函式,c語言中沒有這種函式,自己寫也很方便。這是我在一本書上看到的一道題。題目描述 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。輸入 輸入可能包含多個測試樣例。對於每個輸入檔案,第一行輸入乙個整數t,代表測試樣例的數量。對於每個測試...

十進位制轉二進位制(C

十進位制轉換二進位制其實不是個複雜的問題,我們首先搞清楚原理 整數部分 如果不是0,不斷除2,直到除到1為止,得到的餘數最後逆向排列輸出 如果是0,直接輸出 小數部分 小數部分m非0,則不斷乘2,如果2 m超過1,則輸出1,m 2 m 1 如果2 m不超過1,m 2 m 由於很多小數是無法完全轉換為...

十進位制轉二進位制(C )

相信大家應該都知道,十進位制轉k進製的方法常用的就是除k取餘的方法,這裡針對這個方法,給出了c 的 需要注意的是,除二取餘的方法,對於餘數的選取是從後往前取的,所以在 中,也要解決這個問題才行。模仿不停地除2的過程,每次除2之後用 取餘數i 用 作為下一次除2的被除數temp j初始化為1,每次除了...