为什么在CPython中写入字节到文件时使用"& 0xff",它有什么作用?



例如:

static void w_long(long x, WFILE *p)
{
    w_byte((char)( x      & 0xff), p);
    w_byte((char)((x>> 8) & 0xff), p);
    w_byte((char)((x>>16) & 0xff), p);
    w_byte((char)((x>>24) & 0xff), p);
}

为什么pyc文件不可读,常量文本/字符串在哪里?

& 0xff

数字中获取最后 8 位(或一个字节)。这样可以确保一次只向文件写入一个字节(在这种情况下,用于小端字节序存储)。

0xff 1111 1111二进制。使用它执行逻辑and将打开x 1且位于最后 8 位内的所有位。


例如:

x = 0010 0100 1001 0111
                         &
              1111 1111
    -------------------
    0000 0000 1001 0111

最新更新