我想向你请教一下关于C51中十六进制计算的问题

看见你给别人答题的时候说因为单片机中只有二进制,所以可以直接用十六进制数直接除十进制数得到商和余,我有一点不明白的就是,这里的十六进制数和十进制数都应当是什么数据类型,都... 看见你给别人答题的时候说因为单片机中只有二进制,所以可以直接用十六进制数直接除十进制数得到商和余,我有一点不明白的就是,这里的十六进制数和十进制数都应当是什么数据类型,都是unsigned char型可以么 展开
 我来答
帐号已注销
2015-01-01 · TA获得超过2062个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:338万
展开全部

虽然我不是你想要找的那个人,但我也可以为你解答


十六进制数从0开始到15结束,大于9的用字母表达,其写法如下


0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F


而十进制数则是从0开始,到9结束 0,1,2,3,4,5,6,7,8,9


所以在单片机中,十六进制数用 char 字符形式存储,为便于区分,则用 0x作为开头


如 0x56   0xbf 0xff  等等


二进制中,则只有0和1,十六进制中的一个字符可以代表二进制的四个位


例如二进制数 1111 可以用十六进制 F 表达,二进制数 0000 则用十六进制数 0表达


转换成单片机的语言 就是 0xf    0x0 ,


在单片机的每个P口,都有8个位端口,如果把8个位全部设为1,就是高电平状态


就可以用十六进制数 0xff ,比起二进制的 1111 1111 简化了很多,所以单片机语言规定使用十六进制数来表示 二进制数


至于你说的商和余,只是把两位的十六进制数中的十位和个位分开的一种方法


十六进制数 0xf0 十位是f,个位是0,F0除以10,得到带有小数的数值,存储在整型变量中则自动扔掉小数部分,就刚好得到的是F,如果加上求余符号,那就是只留小数部分


如果还不明白,可以用速查表来查看十六进制数和二进制数的转换结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式