zoukankan      html  css  js  c++  java
  • 一种获取无符号整数最大值的方法:

    //一种获取无符号整数最大值的方法:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      {Delphi 标准的无符号整数类型只有三种}
      num_Byte     : Byte;
      num_Word     : Word;
      num_Cardinal : Cardinal;
    
      {Windows API 中相应的类型就太多了, 下面是随便找了几种}
      api_UCHAR    : UCHAR;    {Byte}
      api_LANGID   : LANGID;   {Word}
      api_DWORD    : DWORD;    {Cardinal}
      api_LongWord : LongWord; {Cardinal}
      api_UINT     : UINT;     {Cardinal}
      api_THandle  : THandle;  {Cardinal}
      api_HWND     : HWND;     {Cardinal}
    begin
      num_Byte     := Byte(-1);     ShowMessage(IntToStr(num_Byte));     {255}
      num_Word     := Word(-1);     ShowMessage(IntToStr(num_Word));     {65535}
      num_Cardinal := Cardinal(-1); ShowMessage(IntToStr(num_Cardinal)); {4294967295}
    
      api_UCHAR    := UCHAR(-1);    ShowMessage(IntToStr(api_UCHAR));    {255}
      api_LANGID   := LANGID(-1);   ShowMessage(IntToStr(api_LANGID));   {65535}
      api_DWORD    := DWORD(-1);    ShowMessage(IntToStr(api_DWORD));    {4294967295}
      api_LongWord := LongWord(-1); ShowMessage(IntToStr(api_LongWord)); {4294967295}
      api_UINT     := UINT(-1);     ShowMessage(IntToStr(api_UINT));     {4294967295}
      api_THandle  := THandle(-1);  ShowMessage(IntToStr(api_THandle));  {4294967295}
      api_HWND     := HWND(-1);     ShowMessage(IntToStr(api_HWND));     {4294967295}
    end;
    
    简单分析: 譬如 Word 是两字节 16 位的, 它最大值的二进制表示是: 11111111 11111111; 假如它能表示 -1, 负数的算法是: 反码 + 1: 1 的二进制是: 00000000 00000001; 1 的反码是 : 11111111 11111110 补 1 后是 : 11111111 11111111 Word 没有负数, 当然 11111111 11111111 就是它的最大值了.
  • 相关阅读:
    MT【160】格点
    MT【159】单调有界有极限
    c_str() 函数
    C strstr() 函数
    全面总结:matlab怎么做漂亮的图
    程序员电邮札记
    C编译: 使用gdb调试
    C编译: 动态连接库 (.so文件)
    C编译: makefile基础
    数据科学
  • 原文地址:https://www.cnblogs.com/del/p/1070513.html
Copyright © 2011-2022 走看看