51单片机C语言理解问题

[复制链接]
查看11 | 回复5 | 2013-7-19 10:43:50 | 显示全部楼层 |阅读模式
uchar 类型 是一个由8位二进制位来组成的
表示从0-255 二进制是0000 0000 - 1111 1111 因为进制转化 就是通过除以进制数来反取
你也可以这样想
比如一个数 A 在[0,255]
假设表示成十六进制为
xy x为高位
y为低位
则十进制数计算为 A=x*16+y
所以一个整除得高四位二进制
取余得低四位二进制数...
回复

使用道具 举报

千问 | 2013-7-19 10:43:50 | 显示全部楼层
以11111110为例:写成16进制是FE,F是高4位,E是低4位。16进制是逢16进1,point [ i ] /16自然就表示可以进多少个1,就是高4位;余下就是低4位。更准确的解释是4位的权是2^4=16,point的位数需为4的整数倍可以扩展一下加深认识:假如point是16位的数,你要取高8位和低8位怎么办?8位的权为2^8=256,...
回复

使用道具 举报

千问 | 2013-7-19 10:43:50 | 显示全部楼层
j1=point [ i ] /16; 不就相当于右移4位啊,比如10000(二进制)/16=1等价于10000>>4j2=point [ i ] %16;是取余数。比如十进制的101对100取余是不是得1啊?这不就得到低位了,一个道理啊...
回复

使用道具 举报

千问 | 2013-7-19 10:43:50 | 显示全部楼层
16为二进制为10000,除表示大于等于第5位数,求余表示后四位数...
回复

使用道具 举报

千问 | 2013-7-19 10:43:50 | 显示全部楼层
十六进制数除以16就是类似10进制数除以10那样,同样取余也是一样道理...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行