已知a=13,b=6,!a的十进制数值是多少
答案:4
a&b是位操作,a和b转换出2进制的值按位进行与操作 具体如下;
a=13=1101(二进制)
b=6 =0110(二进制)
比较:第一位 a为1,b为0,不同为0
第二位 a为1,b为1,相同为1
【转换】:
(一)二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 例1105 把二进制数110.11转换成十进制数。
(二)十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
!a的十进制数值是0。
!在C语言里是非运算,而在C语言中只有当一个数为0时才被认为是假,而a=13,说明a是真,那么!a就是假,也就是!a=0。
!代表值得取反,对于整形变量,只要不为0,使用!取反都是0,0取反就是1,就像bool只有真假一样。
扩展资料
C的运算符有以下几类:
1、算术运算符:*-+/%
2、关系运算符: > < == != >= <=
3、逻辑运算符:! && ||
4、位运算符:<< >> ~ | ^ &
5、赋值运算符:=及扩展赋值运算符
6、条件运算符:?:
7、逗号运算符:,
8、指针运算符:*和&
9、求字节数运算符:sizeof
10、强制类型转换运算符:(类型)
11、分量运算符:. ->
12、下标运算符:[]
13、其他:如函数调用运算符:()
正数的补码是其本身,负数 为取反+1
a的二进制为 00001101,所以!a = 11110010
这些都是计算机内部处理时候的形式 都是补码
转换为人所认识的形式 即原码:
符号为1 即<0
补码到原码 -1取反
得10001110 (符号位在取反时不变)
即-14