首页 > 试题广场 >

假设a=3’b101,b=3’b001,下列描述错误的是()

[单选题]
假设a=3’b101b=3’b001,下列描述错误的是()
  • ~^a=1’b0
  • a<<2=3’b100
  • (a<b)?1:0=0
  • {3{2’b10}=6’b101010
看verilog手册这里就知道了,当^处理的对象只有一个操作数时,应该是将它本身进行按位异或,而不是去找另一个操作数进行异或。所以如果a=3'b101,那它自己对自己进行按位异或,就得到0,再取一次反,那应该为1,所以A错。不得不说一句,国内好多教材都是从这些手册上截取下来翻译过来的,所以很多地方不完整,要想弄明白问题本质,还是得看官方手册才行啊。
发表于 2023-04-12 11:10:19 回复(1)
b选项左移不应该自动突破位宽,变成 ’b10100?
发表于 2022-04-10 10:13:15 回复(0)
按位异或运算符^ ,按位同或运算符 ^~,二者都是双目位运算符,要有两个操作数 此处~^是单目缩减运算符,是对一个数本身每一位逐个异或最后取反的操作,最后只剩1位
发表于 2023-02-03 17:39:04 回复(0)
a和谁异或啊

发表于 2022-09-20 11:18:15 回复(1)
按位异或 再按位取反
发表于 2022-03-25 11:26:26 回复(2)
缩减运算,~^理解成先按位异或再取反,^~理解成先按位取反再按位异或。
发表于 2023-07-08 13:37:17 回复(0)
^a操作就是将a中的每一位按位逐一进行异或,例如a=3'b101,则^a=1^0^1=0,由此可以判断a中为1的位数是奇数还是偶数。
发表于 2023-09-05 14:32:41 回复(0)
选B
发表于 2022-04-19 10:14:45 回复(0)
弱弱的问一句这里不应该看优先级吗,还是我对优先级的理解有问题,~优先级大于^所以应该先~再^
发表于 2025-02-08 23:05:44 回复(0)
D也少了一个括号...
发表于 2024-09-07 17:16:02 回复(0)

我利用Modelsim计算了下A选项,答案为

 ~^a=1'b1

我的理解是归约同或操作符,是先自身按位异或,将异或结果进行取反,与两个操作数的按位同或操作符的意思不太一样。
B选项需要看变量a赋值前固定的位宽是3位还是大于3位,本题默认固定为3位宽,所以不会扩宽位宽。
```

编辑于 2024-04-08 11:03:54 回复(0)
D选项是个啥,正确的结果应该是多少?有没有大佬来解惑
发表于 2023-10-31 16:01:51 回复(1)
异或是二元运算符,到底a和谁异或
发表于 2022-11-23 14:20:48 回复(1)
~∧同或运算,B错了
发表于 2022-10-14 10:36:22 回复(1)
D选择复制2'b10 3次
发表于 2022-09-24 21:20:03 回复(0)
选b
发表于 2022-09-15 20:59:17 回复(1)
题目有问题
发表于 2022-09-11 11:36:59 回复(0)
^a 对a逐位异或
发表于 2022-07-25 16:32:37 回复(0)
B为啥是对的
发表于 2022-07-20 21:34:16 回复(0)
^为归约运算符 按位异或
发表于 2022-07-10 17:32:56 回复(0)