unsigned

来源:互联网 发布:软件开发测试流程 编辑:程序博客网 时间:2024/05/22 04:38

整型的每一种都有无符号(unsigned)和有符号(signed)两种类型,在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个int能存储的数据的范围为–32768 ~ 32767162进制的最高位作为符号位‘1’为负‘0’为正),而unsigned能存储的数据范围则是0~65535(这个最高位不用做符号位,所以是216次方,一共65536)。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数。同时在相同位数的情况下,所能表达的整数范围变大。另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int

  在sql语句中的意义

  sql语句中,创建一个数据表时

  ceate table user{

  user_id int unsigned...

  ...

  }

当中的unsigned表示,数据项user_id恒为正整数。

unsigned 是无符号修饰符!可以修饰int, char, long, short
只写 unsigned 默认为unsigned int.

unsigned char 用在需要将char用于运算的程序中。

举例说明:

  char a = -1;
  int b = 10;
  int c= a*b; // 在某些编译器下 c == -10,在某些编译器下c==2550


  unsigned char a=-1
  int b =10
  int c = a*b//在所有编译器下c == 2550

如果不将char类型参与运算,那么是否使用unsigned都对程序没有任何影响。


原创粉丝点击