我想问下在布尔型数据里true 是不是用八位二进制表示的? ? ?
不是,布尔型数据里true使用一个整数来表示,0=false,1=true
这个整数的其余二进制位实际上是浪费了。虽然空间浪费了,但是时间节省了。因为计算机处理数据的最小单位是它的字长(vb来说,是32bit,4个字节),存储器编址的最小单位是字节。
因此要将8个bool值塞入一个字节,那么要读写其中某一位,需要额外的取余计算、乘除。更糟糕的是,现代处理器可以通过并行执行来优化速度,然而你连续操作两个二进制位,即便两者没有任何依赖关联,那么后一个操作不得不等前一个做完才能进行。
我想追问一下 true 不是-1吗