Ⅰ 怎么用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;
}
运行结果