我要理解-1为什么是0xffffffff,所以写了下面的程序理解。
#include <stdio.h> #include <stdlib.h> typedef unsigned char *byte_pointer; void show_bytes( byte_pointer start, int len ) { int i; for ( i = 0; i < len; i++ ) { printf( "%.2x", start[i] ); } printf( "\n" ); } void show_int( int x ) { show_bytes( (byte_pointer)&x, sizeof(int) ); } int main( void ) { //printf( "%x\n", -1 ); show_int(-1); exit(0); }
PS:主要代码都是《深入理解计算机系统》里,其中为什么要转换成 unsigned char* 这个还没明白。