从键盘输入一个3位的十进制无符号整数,请分别用二进制、八进制和十六进制形式输出《微型计算机原理及应用 》 编程

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 20:54:35
从键盘输入一个3位的十进制无符号整数,请分别用二进制、八进制和十六进制形式输出《微型计算机原理及应用》编程从键盘输入一个3位的十进制无符号整数,请分别用二进制、八进制和十六进制形式输出《微型计算机原理

从键盘输入一个3位的十进制无符号整数,请分别用二进制、八进制和十六进制形式输出《微型计算机原理及应用 》 编程
从键盘输入一个3位的十进制无符号整数,请分别用二进制、八进制和十六进制形式输出
《微型计算机原理及应用 》 编程

从键盘输入一个3位的十进制无符号整数,请分别用二进制、八进制和十六进制形式输出《微型计算机原理及应用 》 编程
好久没写过汇编的程序了,代码估计我现在做不出来,能告诉你下原理~
把3位十进制分别读入后,存到内存的是相应符号的ASC2码,将这个符号asc码转成数字的asc码 比如9 存进去的是39H 要变成 1001,也就是9h,比如存入999 就通过10进制的计算可以求出来 转成2进制的asc码 存成一个16位的acs码
要输出2进制的时候每次读最后一位,之后有个循环移位的命令,总共循环12次 将取出来的值变成可以输出的字符asc码 1---->31h 0----->30h 一个个输出出来就可以了
八进制的,从最后一位开始读,每3个二进制存成一个,将他变成对应的十进制,即 001 --->1,011----> 3,110-->6,100---> 4 即4631最后的输出,将每个数字转成相应的可输出二进制,之后挨个输出出来,记得顺序 4输出是第一个,但却是最后算出来的~
16进制的,从最后一位读,每4位存成一个,之后将得到的字符转成可以输出的字符asc码
之后挨个输出,注意顺序就可以了
相应的asc码转换可以参考那本书后面的附录,里面有各个符号对应的asc码,进行简单的计算就能够得到~
希望能对你有点启发,要是1年前问我,估计很快就能做出来了,就是很久不用了,一直用C++来着,真是对不住啊~

#include
#include
void MchangeN(int n,int x)
{
int i=0,j,a[20],k,c=0;
double m;
m=x;
k=(int)m;//强制类型转换,可以使用k=(int)m;代替,从而更加的一目了然
while(k)//判定需要转换的...

全部展开

#include
#include
void MchangeN(int n,int x)
{
int i=0,j,a[20],k,c=0;
double m;
m=x;
k=(int)m;//强制类型转换,可以使用k=(int)m;代替,从而更加的一目了然
while(k)//判定需要转换的数是否变为0
{
a[i++]=k%n;//取余,进行进制转换,但是顺序与正确值相反
k/=n;//转换一位之后进行相应的变化
}
printf("转换结果为:");
if(x<0)
printf("-");
for(j=i-1;j>=0;j--)//反序输出,大于10的数字进行相应的变化
{
if(a[j]==10)
printf("A");
else
if(a[j]==11)
printf("B");
else
if(a[j]==12)
printf("C");
else
if(a[j]==13)
printf("D");
else
if(a[j]==14)
printf("E");
else
if(a[j]==15)
printf("F");
else
printf("%d",a[j]);
}
printf("\n");//输出换行,以使程序的输出结果美观
}
void main()
{
int x;
printf("请输入需要转换的3位整数:");
scanf("%d",&x);
printf("2进制输出:");
MchangeN(2,x);
printf("8进制输出:");
MchangeN(8,x);
printf("16进制输出:");
MchangeN(16,x);
}

收起

从键盘输入一个3位的十进制无符号整数,请分别用二进制、八进制和十六进制形式输出《微型计算机原理及应用 》 编程 一个字长8位的无符号的二进制整数能表示的十进制数值范围是多少? 5位无符号二进制数字最大表示十进制整数是 16位无符号二进制数可表示十进制整数的范围是 6位无符号二进制数能表示的最大十进制整数是多少? 最大的10位无符号二进制整数转换成十进制是1023, 6位无符号二进制数能表示的最大十进制整数是多少拜托各位大神 用8位二进制位能表示的最大的无符号的整数等于十进制整数是? 一个字长为8位的无符号二进制整数能表示的十进制数值范围为什麽是0~255 一个字节由8位二进制位组成,能表示的最大无符号十进制整数是多少?马上要答案''速度' 谢谢!一共三个问! 最大的10位无符号二进制整数转换成十进制数是( 1023),这个无符号数理解,是否有有符号数? 计算长为10位的二进制无符号整数所表示的十进制数的范围.如题 一个8位2进制数能拜师的最大无符号整数是多少?能表示的最大无符号整数 一个8位2进制数能表示的最大无符号整数是多少?最大无符号整数是什么意思,以及算法 某计算机字长16位的机器码1111 1111 0000 0000,表示无符号的整数时对应的十进制表达式为 (5) ,表示一个带符号整数的反码时,该机器码表示的十进制表达式为 (6) ,该数的补码是 (7) .(5) A.215-27B.21 一个16位的代符号整数,如果将它十六进制表示是FFF0那么它十进制表示是多少? 计算机高手帮忙教下此题,某计算机字长16位的机器码1111 1111 0000 0000,表示无符号的整数时对应的十进制表达式为(5),表示一个带符号整数的反码时,该机器码表示的十进制表达式为(6),该数 一个字长为6位的无符号二进制数能表示的十进制数值范围是