导航:首页 > 操作系统 > 单片机进制

单片机进制

发布时间:2022-02-07 06:55:08

1. 单片机的进制的换算

用在单片机上的一般就是16进制和2进制,这两者之间的换算非常简单,看下面两个例子:

234H转为2进制:

2 == 0010
3 == 0011
4 == 0100

234H = 0010 0011 0100 B

1101000101001B转为16进制:

从低位开始四位四位的划,到最高位则左边补0,如上数:

1101000101001B = 0001 1010 0010 1001 B

然后直接转为16进制即可:

0001 1010 0010 1001 B == 1A29H

2. 单片机中能直接识别的是几进制数.该进制的数有什么特点

单片机中能直接识别的就是二进制数,不论是指令还是数据,都是二进制数。
所谓的十六进制,是人为的写成的,把4位二进制数写成一位十六进制数,目的是便于读/写,但在单片机内部可不存在什么十六进制数。
至于特点,就是0,1两个数,这样,正好利用电子路线的截止和导通两个状态来表示0,1,注意,只是表示0,1两个数,其实,0,1这两个数也根本不存的。只是人为的表示罢了。

3. 单片机十六进制如何转成二进制数

单片机十六进制和二进制数,不用转换,计算机内的数据都是以二进制保存的。几进制数,只是以不同的方式来显示。本质上是一样的。
如果一定要转换,具体参考如下:
unsigned char num; //定义一个8位数
if(num&(1<<n))
...;//num 的第N位是1
else
...;//num 的第N位是0
当然可以放在一个循环里面;
for(unsigned char i=0;i<8;i++) {
if(num&(1<<n))
...;//num 的第N位是1
else
...;//num 的第N位是0
}

4. 请问单片机C语言编程中那些进制数是什么意思啊 下面举例:

首先,你应该知道0x40是十六进制数吧。其次,计算机里面的数据以二进制存储也不用多说了。
使用十六进制数有不同的作用。
首先,十六进制的数也是一个数字,可以进行数字运算,比如0x40+0x40=0x80。
其次,十六进制和二进制的转换十分密切。在单片机中,对寄存器的操作是一个十分重要的内容(什么是寄存器?不知道的话说明你单片机还没入门,赶紧网络去吧),有些寄存器就像是一个开关。假设有一个寄存器叫SWITCH(我编的名字,意思是开关),它有八位,作用是八个灯的开关。如果第一位是1,则把第一盏灯打开,第二位是1,就打开第三盏,依此类推。如果我想把第一三盏灯打开,我就需要给SWITCH赋值 10100000,第一位和第三位是1,打开,其他是0,关闭。这样就相当于一个语句 SWITCH = 10100000。但是10100000太长了,如果改成16进制数,就是0xA0,那么,这个语句也可以写成 SWITCH = 0xA0。这就是用十六进制的好处。
那么,怎么知道用什么数据呢?你就得知道某个寄存器每一位的作用。在你的单片机对应的手册里,会对每一个寄存器的作用做详细的解释。去看看操作手册,你就知道赋值是什么用了。
最后,用windows自带的计算器软件里面的 程序员 模式(查看——程序员),能方便地实现各个进制的转换。

用单片机不少时间啦~给你一点点帮助~

5. 单片机的十六进制怎么表示

十六进制 是计算机中数据的一种表示方法.同我们日常中的十进制表示法不一样.它由0-9,A-F,组成.与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0---(N-1)的数表示超过9的用字母A-F。 例如: 10进制的32表示成16进制就是:20 16进制的32表示成10进制就是:3×16^1+2×16^0=50 6.1 为什么需要八进制和十六进制? 编程中,我们常用的还是10进制……毕竟C/C++是高级语言。 比如: int a = 100,b = 99; 不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。 但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是: 0000 0000 0000 0000 0110 0100 面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。 用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢? 2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。 6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 所以,设有一个二进制数:101100100,转换为10进制为:356

6. 单片机进制运算的迷惑

单片机运算是二进制。不管是char还是int本质都是二进制,只是长度和补码的区别而已。

二进制机器码和二进制运算还是有点区别的,楼上的概念略有混淆。

7. 单片机中二进制怎么表示

单片机编程 汇编中 十进制 后面加D ,十六进制后边加H, 二进制后面加B。 比如 10进制 35D, 16进制 23H, 二进制 0010 0011B.
c语言中 十进制 不加前缀, 十六进制前边加 0x , 8进制前边加0 , 二进制不能直接表示(比较麻烦), 如 10进制 15 , 16进制 0x25 , 8进制 025

8. 51单片机c语言编程中的数字是几进制的

默认是十进制的。如果hour=03。03是十进制3。十进制十六进制其实是对人来说的,是你写程序的时候区分的,如果我用串口发送十进制数30 hour=sbuf 单片机中hour=?寄存器中存贮的是0001 1110。如果我写hour++ hour是用十进制还是十六进制规则运算,这个在内存里面就是该变量位置二进制的加1,如果说在程序里面十进制和十六进制++,感觉差别不大。

9. 单片机编程中都是16进制表示数字么 会不会有10进制或2进制

看编程语言

汇编中有16进制 有10 进制有8进制 有2进制

c语言中无2进制的使用 我是说语法中

各有各的好处


inta=0;//c语言中
a=0xff;//16进制
a=0377;//8进制以0开头
a=255;//10进制
//他们表示数据是一个数

10. 51单片机C语言里 怎样将16进制 直接化成 10进制

我这儿有一个进制转换的程序,你可以参考一下:
#include<stdio.h>
#include<math.h>
#include<string.h>
int count=0;
void *tentoBOH(int a,int n)
{
int t,i=0,j,str[50],*p;
char str1[50],*q,temp;
while(a!=0)
{
t=a%n;
if(n==16)
{
if(t<=9&&t>=0)str1[i++]=(char)('0'+t);
if(t>9&&t<16)str1[i++]=(char)('A'-10+t);
}
else
str[i++]=t;
a=a/n;
count++;
}
for(i=0,j=count-1;i<count/2;i++,j--)
{
t=str[i];
str[i]=str[j];
str[j]=t;
temp=str1[i];
str1[i]=str1[j];
str1[j]=temp;
}
if(n==16)
return q=str1;
else
return p=str;
}
int BOHtoTen(char str[],int n)
{
int len,i,a=0;
char t;
len=(int)strlen(str);
for(i=0;i<len/2;i++)
{
t=str[i];
str[i]=str[len-1-i];
str[len-1-i]=t;
}
i=0;
while(str[i]!='\0')
{
if(str[i]>='0'&&str[i]<='9')
a+=(str[i]-'0')*(int)pow(n,i);
if(str[i]>='a'&&str[i]<='f')
a+=(str[i]-'a'+10)*(int)pow(n,i);
if(str[i]>='A'&&str[i]<='F')
a+=(str[i]-'A'+10)*(int)pow(n,i);
i++;
}
return a;
}
void main()
{
int a,i,n,m,*p;
char *q,str[20];
printf("请输入一个十进制数a= ");
scanf("%d",&a);
printf("请输入一个进制数n= ");
scanf("%d",&n);
if(n==16)q=tentoBOH(a,n);
else p=tentoBOH(a,n);
printf("输出正整数%d的%d进制为:",a,n);
if(n==16)
for(i=0;i<count;i++)
printf("%c",*(q+i));
else
for(i=0;i<count;i++)
printf("%d",*(p+i));
printf("\n请输入字符串str= ");
scanf("%s",str);
printf("\n请输入该字符串的进制m= ");
scanf("%d",&m);
printf("\n该%d进制数%s转换成十进制数为:%d\n",m,str,BOHtoTen(str,m));
}

阅读全文

与单片机进制相关的资料

热点内容
安卓自助app怎么转到苹果手机 浏览:326
雅马哈回音壁不能识别源码 浏览:728
python如何移植到安卓 浏览:27
黄柱选股公式源码 浏览:637
教育系统源码达标 浏览:886
声卡驱动安装程序在哪个文件夹 浏览:60
钱还完了银行不给解压 浏览:169
linux的系统调用表 浏览:752
php怎么转换页面 浏览:546
我的世界买了服务器之后怎么开服 浏览:828
r1234yf汽车空调压缩机 浏览:145
ftp服务器地址栏 浏览:900
linux图形分区 浏览:965
安徽到辽宁源码 浏览:577
libs安卓的文件夹叫什么 浏览:871
生意圈app是什么意思 浏览:397
linuxarcgisserver 浏览:234
加密pdf怎么修改文件 浏览:138
红米刷机无命令怎么办 浏览:356
啥叫美国谷歌外包程序员 浏览:260