//*********************************************
成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、甘谷網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為甘谷等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
//不使用求余和除法的二進(jìn)制轉(zhuǎn)bcd的算法
//使用了C51中 指令DA的思路
//本人原創(chuàng) 已測試 以應(yīng)用實際項目中
//Lhex_to_bcd
//*********************************************
//**************************
// 數(shù)據(jù)自加 并作10進(jìn)制檢查
//
//**************************
void C51_DA(unsigned char *da1,unsigned char Ln,unsigned char ac0)
{
unsigned char i;
unsigned char ac = ac0;//進(jìn)位標(biāo)志
for(i=0;iLn;i++)
{
da1[i] = da1[i] + da1[i] + ac;
if(da1[i] 9)
{
da1[i] = da1[i] - 10;
ac = 1;
}
else
{
ac= 0;
}
}
}
//**************************************
// 多字節(jié)整形轉(zhuǎn) bcd
// 結(jié)果保存為非壓縮bcd碼
// 輸入數(shù)據(jù)
// da1 用來保存轉(zhuǎn)換結(jié)果
// 長度大于 (l+1)*2
// da2 被轉(zhuǎn)換數(shù)據(jù)
// l da2 長度 用字節(jié)個數(shù)表示
// 輸出 無
//**************************************
void Lhex_to_bcd(unsigned char *da1,unsigned char *da2,unsigned char l)
{
unsigned char i;
unsigned char m;
unsigned char tmp;
unsigned char Ln = (l+1)*2; //計算結(jié)果的長度
for(i=0;iLn;i++) //初始化計算結(jié)果
da1[i] = 0;
for(m=0;ml;m++) //循環(huán)輸入數(shù)據(jù)的字節(jié)數(shù)
{
tmp = da2[l-1-m];
for(i=0;i8;i++)//每個字節(jié)循環(huán)8次
{
if(tmp0x80) //取最高 1 bit
C51_DA(da1,Ln,1);
else
C51_DA(da1,Ln,0);
tmp=1;
}
}
}
經(jīng)??吹紺語言的main函數(shù)定義為:
int main(int argc, char *argv[]),但是在函數(shù)體中經(jīng)常是根本不用main函數(shù)中的這兩個參數(shù),這兩個參數(shù)用于在運(yùn)行程序時,從外部給程序傳遞參數(shù),其中argc中保存了參數(shù)的個數(shù),argv中分別保存了各個參數(shù).
例如一個程序的main()函數(shù)頭部形如int main(int argc, char *argv[]),編譯鏈接后生成的可執(zhí)行文件名為a.exe,那么請注意下面的調(diào)用:
a.exe abc def
在上面的命令行中,a.exe是要運(yùn)行的程序名稱,后面的abc和def就是傳入程序的兩個參數(shù),這兩個參數(shù)就通過argc和argv傳入程序,注意這些參數(shù)都是字符串。
通過上面的調(diào)用,在這個程序中,argc=3,a.exe是第一個參數(shù),這個字符串將保存在argv[0]中,abc和def分別是第二和第三個參數(shù),它們分別被保存在argv[1]和argv[2]中
C51帶進(jìn)位的循環(huán)左右移指令是什么:這必須用匯編語言:RLC A、 RRC A。
_crol_()、_cror_(),都不是指令,它們是C語言的函數(shù)。
原發(fā)布者:血戰(zhàn)長空wlg
題目:數(shù)制轉(zhuǎn)換問題1.需求分析將十進(jìn)制數(shù)N轉(zhuǎn)換成八進(jìn)制數(shù)是計算機(jī)實現(xiàn)計算的基本問題,解決方案很多,其中最簡單的方法是除8取余法。1)本方案采用順序棧的方式模擬整個過程。其原理如下:例子:(1348)10=(2504)8NNdiv8Nmod8134816841682102125202從中可以看出,最先產(chǎn)生的余數(shù)4是轉(zhuǎn)換加過的最低位,這正好符合棧的“后進(jìn)先出”的特性。2)功能:從鍵盤輸入任意一個非負(fù)十進(jìn)制整數(shù),輸出與其等值的八進(jìn)制數(shù);若輸入一個負(fù)數(shù),則顯示輸入錯誤,請重新輸入。3)測試數(shù)據(jù):(1348)10=(2504)8,(0)10=(0)8,(-1234)10輸入數(shù)據(jù)錯誤。2.概要設(shè)計定義順序棧類型,由鍵盤輸入非負(fù)十進(jìn)制整數(shù)N,執(zhí)行以下循環(huán)操作:N%8入棧,N=N/8,直至N=0。主要函數(shù)由建立空棧Initsqstack()、入棧Push()、出棧Pop()和main()函數(shù)組成。過程中函數(shù)調(diào)用關(guān)系圖如下:3.詳細(xì)設(shè)計1)數(shù)據(jù)類型定義structSqstack{int*bottom;int*top;intmaxsize;};2)系統(tǒng)主要子程序詳細(xì)設(shè)計A.建立空棧intInitsqstack(Sqstacks){s.bottom=(int*)malloc(sizeof(int)*20);if(s.bottom){s.top=s.bottom;
我有點沒搞明白(45、81、673938)取最后一位是怎么得出5138的,不是518嗎?
但還是隨便寫一下吧
#include?stdio.h
#include?stdlib.h
int?getLastBit(int?number);
int?main()
{
int?i?=?0,?n?=?0;
int?number?=?0,?newnumber?=?0;
printf("輸入整數(shù)個數(shù):");
scanf("%d",?n);
for(i?=?1;?i?=?n;?i++)
{
scanf("%d",?number);
newnumber?*=?10;????????????
newnumber?+=?getLastBit(number);????
}
printf("新整數(shù)是:%d\n",?newnumber);
return?0;?
}
int?getLastBit(int?number)
{
if(number?=?0)
{
printf("錯誤!\n");
exit(1);
}
else
return?number%10;
}
任意進(jìn)制之間的進(jìn)制轉(zhuǎn)換。需要考慮高精度整形的設(shè)計,用數(shù)組模擬一個整形變量。一位一位的進(jìn)行進(jìn)制轉(zhuǎn)換,算法思想和十進(jìn)制轉(zhuǎn)換到二進(jìn)制相同,除以目標(biāo)進(jìn)制,余數(shù)為低位。這種進(jìn)制轉(zhuǎn)換實用性不強(qiáng),一般出現(xiàn)在計算機(jī)程序競賽當(dāng)中。
8,10,16進(jìn)制的轉(zhuǎn)換。在C語言中有不少函數(shù)都能實現(xiàn)上面幾種進(jìn)制之間的進(jìn)制轉(zhuǎn)換。
推薦其中的sprintf/sscanf函數(shù)。
sprintf格式的規(guī)格如下所示。[]中的部分是可選的。
%[指定參數(shù)][標(biāo)識符][寬度][.精度]指示符
若想輸出'%'本身時, 請使用'%%'處理。
1. 處理字符方向。負(fù)號時表示從后向前處理。
2. 填空字元。 0 的話表示空格填 0;空格是內(nèi)定值,表示空格就放著。
3. 字符總寬度。為最小寬度。
4. 精確度。指在小數(shù)點后的浮點數(shù)位數(shù)。
轉(zhuǎn)換字符
%% 印出百分比符號,不轉(zhuǎn)換。
%c 整數(shù)轉(zhuǎn)成對應(yīng)的 ASCII 字元。
%d 整數(shù)轉(zhuǎn)成十進(jìn)位。
%f 倍精確度數(shù)字轉(zhuǎn)成浮點數(shù)。
%o 整數(shù)轉(zhuǎn)成八進(jìn)位。
%s 整數(shù)轉(zhuǎn)成字符串。
%x 整數(shù)轉(zhuǎn)成小寫十六進(jìn)位。
%X 整數(shù)轉(zhuǎn)成大寫十六進(jìn)位。
例程(16進(jìn)制和10進(jìn)制之間的轉(zhuǎn)換):
#include?stdio.h??
#include?limits.h??
int?main()??
{??
char?s[100]?=?{0};??
sprintf(s,?"%x",?INT_MAX);??
printf("%s\n",?s);?//?7fffffff??
char?str[100]?=?"7fffffff";??
int?i?=?0;??
sscanf(str,?"%x",?i);??
printf("%d\n",?i);?//?2147483647??
return?0;???
}
網(wǎng)頁名稱:c語言進(jìn)位函數(shù),java進(jìn)位函數(shù)
網(wǎng)站路徑:http://chinadenli.net/article28/hegdcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、Google、軟件開發(fā)、定制開發(fā)、App開發(fā)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)