找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 280|回复: 9
打印 上一主题 下一主题
收起左侧

关于单片机C语言值的定义

[复制链接]
跳转到指定楼层
楼主
ID:302293 发表于 2024-3-18 10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Disbuff[3]=11;与Disbuff[3]=0x11;的区别是怎么样的
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:627942 发表于 2024-3-18 13:41 | 只看该作者
一个是十进制,一个是十六进制,0x11=17;
回复

使用道具 举报

板凳
ID:908826 发表于 2024-3-18 14:07 | 只看该作者
0x11转换为十进制是17
回复

使用道具 举报

地板
ID:69038 发表于 2024-3-18 15:15 | 只看该作者
这个问题....只有二班、三班的同学才可能问的。。。
回复

使用道具 举报

5#
ID:302293 发表于 2024-3-18 16:19 | 只看该作者
zhuls 发表于 2024-3-18 15:15
这个问题....只有二班、三班的同学才可能问的。。。

   寄存器可以直接赋值十进制的?
回复

使用道具 举报

6#
ID:69038 发表于 2024-3-18 16:29 | 只看该作者
sr861126 发表于 2024-3-18 16:19
寄存器可以直接赋值十进制的?

可以,你只要换算好值 就可以。不管二、八、十、十六进制,对MCU来说,都是二进制。。
回复

使用道具 举报

7#
ID:1110945 发表于 2024-3-18 20:25 | 只看该作者
sr861126 发表于 2024-3-18 16:19
寄存器可以直接赋值十进制的?

你写的程序不能直接给单片机,是要经过你的电脑“翻译”(编译)成机器码再
写进单片机的,无论是十进制还是十六进制,编译器都能正确识别,你写程
序的时候怎么方便怎么写,1到9开头的都是十进制,“0x”开头的都是十六进制。
回复

使用道具 举报

8#
ID:1110945 发表于 2024-3-18 20:55 | 只看该作者
比如说8位数字最高位为1的数是128,写成十六进制是0x80,
16位数字最高位为1的数我花了很大的力气记下来了是32768,
写成十六进制是0x8000,32位最高位为1的数是2147483648,
我没有去记它,因为很容易记错,但我知道写成十六进制是
0x80000000,64位最高位为1的数写成十六进制是8后面15个
“0”,前面加上“0x”开头,这样记就不会出错。
回复

使用道具 举报

9#
ID:281828 发表于 2024-3-18 21:45 | 只看该作者
编程时你只写Disbuff[3]=11;这是没问题的,但你自己要知道这个11是十进制的11,而不是十六进制的0x11(十进制等于17),如果你想写出0x--的数据格式就需要转换下可以写作0x0b,可以借助windows系统自带的计算器(选定为程序员模式)来换算。
回复

使用道具 举报

10#
ID:883242 发表于 2024-3-19 00:34 | 只看该作者
寄存器只能是二进制,不管你写几进制最后运行的都是二进制。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表