Ⅰ 怎麼用vb實現二進制與十進制的轉化程序啊
進制轉換並不是那麼難的,有很多相關的資料。
提供一個二進制轉化為十進制的函數
PrivateSubcommand1_click()
MsgBoxBIN_to_DEC("11")
EndSub
PrivateFunctionBIN_to_DEC(ByValBinAsString)AsLong
DimiAsLong
Fori=1ToLen(Bin)
BIN_to_DEC=BIN_to_DEC*2+Val(Mid(Bin,i,1))
Nexti
EndFunction
Ⅱ 怎麼將16位二進制數轉換成BCD碼的匯編語言程序
1、首先左移要轉換的二進制碼1位; 左移之後,BCD碼分別置於百位、十位、個位; 如果移位後所在的BCD碼列大於或等於5,則對該值加3;繼續左移的過程直至全部移位完成,並檢查每一列對應的bcd碼是否
注意事項:
BCD碼這種編碼形式利用了四個位元來儲存一個十進制的數碼,使二進制和十進制之間的轉換得以快捷的進行。這種編碼技巧最常用於會計系統的設計里,因為會計制度經常需要對很長的數字串作準確的計算。
Ⅲ 怎麼吧二進制文件轉化成c語言啊
估計不行,編譯過程是不可逆的,機器碼只能反匯編一些硬體指令。例如mov ,push ,pop等,
一般高手都是這樣逆推理解程序的作用,從而破解一些程序。聽說現在的C#是基於一種CLR機制,說有可能逆反源代碼,不知道是不是。不知道你問這個想做神馬?做黑客嗎。能力有限只能答復你這么多了。
Ⅳ 如何使用C語言編寫二進制轉換為十進制的程序
#include<stdio.h>
#include<math.h>
#include<string.h>
/*任意進制數轉十進制數*/
/*char*value:其他進制數,以字元串形式存儲*/
/*int*result:轉換後的十進制數*/
/*intradix:待轉換的進制*/
/*R進制數共n位,第n位表示為Xn。轉換後的10進制數表示為Y*/
/*Y=Xn*R^0+Xn-1*R^1+Xn-2*R^2+……+X1*R^n-1*/
voidothers2Decimal(char*value,int*result,intradix){
intdigit,i,j;
*result=0;
for(i=strlen(value)-1,j=0;i>=0;i--,j++){
if(value[i]>='0'&&value[i]<='9')
digit=value[i]-'0';
if(value[i]>='a'&&value[i]<='z')/*十以上進制處理,小寫字母*/
digit=value[i]-'a'+10;
if(value[i]>='A'&&value[i]<='Z')/*十以上進制處理,大寫字母*/
digit=value[i]-'A'+10;
*result+=digit*pow(radix,j);
}
}
/*校驗輸入的某進制數是否合法*/
/*合法:返回1;不合法:返回0*/
intcheck(char*value,intradix){
inti;
for(i=0;i<strlen(value);i++){
if(radix<=10&&value[i]>='0'&&value[i]<='9'&&value[i]>=radix+'0')
return0;
if(radix>10&&value[i]>='a'&&value[i]<='z'&&value[i]>=radix-10+'a')
return0;
if(radix>10&&value[i]>='A'&&value[i]<='Z'&&value[i]>=radix-10+'A')
return0;
}
return1;
}
intmain(void){
char*value;
intradix=2,result;
printf("請輸入%d進制數:",radix);
fflush(stdin);/*清除緩沖區*/
gets(value);
if(check(value,radix)!=1){
putchar(' ');
printf("輸入的%d進制數有誤! ",radix);
putchar(' ');
return0;
}
putchar(' ');
puts("================================================================ ");
printf("10進制轉換結果:");
others2Decimal(value,&result,radix);
printf("%d ",result);
putchar(' ');
getch();/*屏幕暫留*/
return0;
}
運行結果