c语言 按照二进制输出 例如给出 D3, 输出 D: 01000100 3: 00110011

Python010

c语言 按照二进制输出 例如给出 D3, 输出 D: 01000100 3: 00110011,第1张

D3 如果是 16 进制 输出 DD 33 ,应当是 D:11011101 3:00110011

程序如下:

#include<stdio.h>

main(){

int i

short int y=0xD3 // 十六进制 数 D3

unsigned char x

x= (y &0xf0) >>4

printf("%1X:",x)

for (i=3i>=0i--) printf("%1d",(x>>i) &0x01)

for (i=3i>=0i--) printf("%1d",(x>>i) &0x01)

printf(" ")

x= y &0x0f

printf("%1X:",x)

for (i=3i>=0i--) printf("%1d",(x>>i) &0x01)

for (i=3i>=0i--) printf("%1d",(x>>i) &0x01)

return 0

}

如果你的D 编码同 4 ,自己换算一下:x = D-A+1

再套用 for (i=3i>=0i--) 。。。。

d1=(a<b)||(++a==5)||(c>b--)因为都是或运算,有一个为真,那么整个表达式都为真,a<b为真,所以后面的表达式程序都不会去管,所以d1 =1,a=4,b=8,c=5

d2=(a>b)&&(++a==5)||(c>b--)先是与运算,一个为假那么就是假,a>b为假,所以&&(++a==5)不执行,后面是或运算,再判断,c>b--,也是假,0||0=0,所以d2=0,a=4,b=7,c=5

d3=(a<b)||(++a==5)&&(c>b--)因为&&的优先级高所以可以改写成(a<b)||((++a==5)&&(c>b--)),a<b为真,后面的不判断,所以d3=1,a=4,b=7,c=5

d4=(a>b)&&(++a==5)&&(c>b--)a〉b为假,后面的也不判断d4=0,a=4,b=7,c=5