keil软件 可以跨进制进行乘除法吗?
发现阿莫老大在严格审题中,不知道能不能通过?比如说:直接将单片机P0*25=temp 那么temp这个数是什么进制了呢? 回去好好看看C语言吧!
自动数值转化
比如:char 和 int 做运算,char先转换成int类型,然后做运算。
unsigned int 和signed int 做运算,signed int 要先转换为unsignedint后两者再做运算。
不知道上面说的是不是全对,好久都忘了!{:sad:} 楼上的回答不是楼主问的,呵呵. LZ的写法都错了,应该是:
temp=P0*25;
temp的类型就是你定义的类型呀,编译器会将计算结果强制转换为temp变量的类型的。 techbaby 发表于 2012-12-5 14:27 static/image/common/back.gif
回去好好看看C语言吧!
自动数值转化
额 ,我是说P0口是个16进制啊,0xXX这个类型的,可以直接乘以一个具体的数,比如说10,然后结果存在temp中,假设我是unsignedinttemp; techbaby 发表于 2012-12-5 14:30 static/image/common/back.gif
LZ的写法都错了,应该是:
temp=P0*25;
temp的类型就是你定义的类型呀,编译器会将计算结果强制转换为temp ...
en,是写错了,强制性的啊,那就是unsigned int temp;
temp=P0*25,然后这个结果和把P0转换成十进制之后与25相乘的结果一样么 hyz_avr 发表于 2012-12-5 14:29 static/image/common/back.gif
楼上的回答不是楼主问的,呵呵.
呵呵,确实是我错了。
原来问的是进制,晕喔! chensheng00 发表于 2012-12-5 14:35 static/image/common/back.gif
en,是写错了,强制性的啊,那就是unsigned int temp;
...
呵呵,数值不会因为进制不一样而出现值不一样,例如 20d=14h=10100b. 进制是为了我们人类方便而发明的计数方法。数的的大小固定的。 lizhoubob 发表于 2012-12-5 14:43 static/image/common/back.gif
呵呵,数值不会因为进制不一样而出现值不一样,例如 20d=14h=10100b. 进制是 ...
{:3_48:} 原来如此,谢谢各位前辈 chensheng00 发表于 2012-12-5 14:35 static/image/common/back.gif
en,是写错了,强制性的啊,那就是unsigned int temp;
...
别纠结进制的问题了。
对计算机而言,只有二进制,即0和1。
我们所说的十六进制,八进制,十进制等等,只是为了方便我们记忆和识别而已。
在C语言中,编译器会帮我们处理数值转换的问题。
如:0xFF就是255,他们由编译器翻译成二进制码都是1111 1111
页:
[1]