发布网友 发布时间:2022-04-29 21:49
共5个回答
热心网友 时间:2022-06-23 16:25
c语言不能直接表示二进制,没有数字前缀表示。
例子如下:
假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:
00000000 00000000 00000000 00000101
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。
进制是一种计数的方式,常用的有二进制、八进制、十进制、十六进制。任何数据在计算机内存中都是以二进制的形式存放的。
我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数;八进制数是以8为计算单元,满8进1位的数。
对于任何一个数字,我们都可以用不同的进制来表示,比如,十进制数12,用二进制表示为1100,用八进制表示为14,用十六进制表示为0xC。
热心网友 时间:2022-06-23 16:26
编程时,若在十进制数字前面加上前缀0,如052,则编译器把该数字视为八进制而不是十进制,就像0x50一样,所以像069这样的数字是不合法的,因为八进制不能含有8及其以上的数字。标准C对二进制前缀没有规定,因为二进制不能直接用来参与运算,都是用十进制,十六进制,八进制来做的。热心网友 时间:2022-06-23 16:26
有,0BXXXXXXXX,代表二进制,C语言中也可以用二进制。但造成程序可读性不强(如果是配置寄存器,个人感觉比十六进制可读性强,可读性最好的是例如:PORTA&=~(1<<5);将PA.5置零,PORTA|=(1<<5);pa.5=1)热心网友 时间:2022-06-23 16:27
不能用二进制。。。热心网友 时间:2022-06-23 16:28
十六进制不是 0~F 吗?怎么成 0~E 了?