navicat设置mysql中的int字段以及c++中int类型小细节
创建无符号int类型字段
create table int_unsigned(id int(11) unsigned,name varchar(64));
创建一个有符号int类型字段
create table int_default(id int(11), name varchar(64));
使用navicat中的可视化创建表时,没有看到可以指定符号的选项?
原来中文版的navicat,无符号unsigned被翻译为“未签署”。
Decimals被翻译为“十进位”,真实的意思“小数点位数”,对浮点型数据有用。
中文版害死多少人呢?哈哈
下面说的是C++
对于long和short
c++标准是这么说的:长整型至少和整型一样长,整型至少和短整型一样长。不同编译器,实现不同。
16位的系统short int、int数据长度都是16位 ,32位编译器long int和int数据长度也都是32位。换句话说,整形所占的长度不一定是4个字节。
整型的长度被定义为一个机器的字长(为了效率)。所以为了取得机器的字长,可以使用sizeof(int)。也可以用于测试字节顺序。
说起sizeof,想起一件事情。同一个结构体代码在不同机器上可能编译出不同的长度。所以,最好在同一台机器同一个编译器编译服务端和客户端。
如你所见,char也不一定是1个字节,但是至少一个字节。而且,在不同编译器默认的正负类型是不一样的。所以使用的时候,最好指定符号。