#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,每次除了...