C语言数据存储


基础单位

位是最基本的概念,它的英文名字叫(bit),是计算机中最基本的单位。只有逻辑0和逻辑1

字节

Byte,是由八个位组成的一个单元,也就是8个bit组成1个Byte。
一个字节最大的表示数据应该是111111,10进制表示就是255,16进制表示就是FF

基本数据类型

limits.h

  1. #define _INC_LIMITS
  2.  
  3. #include <vcruntime.h>
  4.  
  5. #pragma warning(push)
  6. #pragma warning(disable: _VCRUNTIME_disABLED_WARNINGS)
  7.  
  8. _CRT_BEGIN_C_HEADER
  9.  
  10. #define CHAR_BIT 8 //char类型的位数为8,1个字节
  11. #define SCHAR_MIN (-128) //最小值
  12. #define SCHAR_MAX 127 //最大值
  13. #define UCHAR_MAX 0xff //
  14.  
  15. #ifndef _CHAR_UNSIGNED
  16. #define CHAR_MIN SCHAR_MIN
  17. #define CHAR_MAX SCHAR_MAX
  18. #else
  19. #define CHAR_MIN 0
  20. #define CHAR_MAX UCHAR_MAX
  21. #endif
  22.  
  23. #define MB_LEN_MAX 5
  24. #define SHRT_MIN (-32768) //short类型的最小值
  25. #define SHRT_MAX 32767 //short类型的最大值
  26. #define USHRT_MAX 0xffff
  27. #define INT_MIN (-2147483647 - 1) //int类型的最小值
  28. #define INT_MAX 2147483647 //int类型的最大值
  29. #define UINT_MAX 0xffffffff
  30. #define LONG_MIN (-2147483647L - 1) //long类型的最小值
  31. #define LONG_MAX 2147483647L //long类型的最大值
  32. #define ULONG_MAX 0xffffffffUL
  33. #define LLONG_MAX 9223372036854775807i64 //long long类型的最大值
  34. #define LLONG_MIN (-9223372036854775807i64 - 1) //long long类型的最小值
  35. #define ULLONG_MAX 0xffffffffffffffffui64
  36.  
  37. #define _I8_MIN (-127i8 - 1)
  38. #define _I8_MAX 127i8
  39. #define _UI8_MAX 0xffui8
  40.  
  41. #define _I16_MIN (-32767i16 - 1)
  42. #define _I16_MAX 32767i16
  43. #define _UI16_MAX 0xffffui16
  44.  
  45. #define _I32_MIN (-2147483647i32 - 1)
  46. #define _I32_MAX 2147483647i32
  47. #define _UI32_MAX 0xffffffffui32
  48.  
  49. #define _I64_MIN (-9223372036854775807i64 - 1)
  50. #define _I64_MAX 9223372036854775807i64
  51. #define _UI64_MAX 0xffffffffffffffffui64
  52.  
  53. #ifndef SIZE_MAX
  54. // SIZE_MAX deFinition must match exactly with stdint.h for modules support.
  55. #ifdef _WIN64
  56. #define SIZE_MAX 0xffffffffffffffffui64
  57. #else
  58. #define SIZE_MAX 0xffffffffui32
  59. #endif
  60. #endif
  61.  
  62. #if __STDC_WANT_SECURE_LIB__
  63. #ifndef RSIZE_MAX
  64. #define RSIZE_MAX (SIZE_MAX >> 1)
  65. #endif
  66. #endif
  67.  
  68. _CRT_END_C_HEADER
  69.  
  70. #pragma warning(pop) // _VCRUNTIME_disABLED_WARNINGS

 

计算机的整型有符号数有三种表示方法,原码、反码、补码。
三种表示方法均有符号位和数值位两部分,符号位都是用“0”表示“正数”,用“1”表示“负数”;而数值位三种表示方法各不相同:

原码
直接将二进制按照正负数的形式翻译成二进制就可以

反码
将原码的符号位不变,数值位按位取反即可

补码
反码+1即可

无符号位的整数原码、反码、补码相同;有符号位的整数原码、反码、补码不相同。
 

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/291024.html

(0)
上一篇 2022年10月14日
下一篇 2022年10月14日

相关推荐

发表回复

登录后才能评论