扩展位数规则以及进制转换

一、整数

1.对于正数:不论是有符号数还是无符号数,也不论是原码、补码还是反码,一律在最高位补0。

2.对于负数:

  • 原码:高位补0
  • 反码:高位补1
  • 补码:高位补1

二、小数

1.对于正数:一律在低位补0。

2.对于负数:

  • 原码:低位补0
  • 反码:低位补1
  • 补码:低位补0

三、进制转换

以(29)10为例进行说明

1.十进制转二进制

(1)第一步:除以2取余

  • 29 ÷ 2 = 14 …… 1
  • 14 ÷ 2 = 7 …… 0
  • 7 ÷ 2 = 3 …… 1
  • 3 ÷ 2 = 1 …… 1
  • 1 ÷ 2 = 0 …… 1

(2)第二步:将余数从下到上写出

(29)10 = (11101)2

2.十进制转四进制

(1)第一步:除以4取余

  • 29 ÷ 4 = 7 …… 1
  • 7 ÷ 4 = 1 …… 3
  • 1 ÷ 4 = 0 …… 1

(2)第二步:将余数从下到上写出

(29)10 = (131)4

3.十进制转八进制

(1)第一步:除以8取余

  • 29 ÷ 8 = 3 …… 5
  • 3 ÷ 8 = 0 …… 3

(2)第二步:将余数从下到上写出

(29)10 = (35)8

4.十进制转十六进制

(1)第一步:除以16取余

  • 29 ÷ 16 = 1 …… 13
  • 1 ÷ 16 = 0 …… 1

(2)第二步:将余数从下到上写出

(29)10 = (1D)16

5.二进制转十进制

(11101)2 = 1 × 20 + 0 × 21 + 1 × 22 + 1 × 23 + 1 × 24 = 1 + 0 + 4 + 8 + 16 = (29)10

6.四进制转十进制

(131)4 = 1 × 40 + 3 × 41 + 1 × 42 = 1 + 12 + 16 = (29)10

7.八进制转十进制

(35)8 = 5 × 80 + 3 × 81 = 5 + 24 = (29)10

8.十六进制转十进制

(1D)16 = D × 160 + 1 × 161 = 13 + 16 = (29)10

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
function MoveFile(const sName, dName: string): Boolean; {* 移动文件、目录,参数为源、目标名} procedure FileProperties(const FName: string); {* 打开文件属性窗口} function OpenDialog(var FileName: string; Title: string; Filter: string; Ext: string): Boolean; {* 打开文件框} function FormatPath(APath: string; Width: Integer): string; {* 缩短显示不下的长路径名} function GetRelativePath(Source, Dest: string): string; {* 取两个目录的相对路径,注意串尾不能是'\'字符!} procedure RunFile(const FName: string; Handle: THandle = 0; const Param: string = ''); {* 运行一个文件} function WinExecAndWait32(FileName: string; Visibility: Integer = SW_NORMAL): Integer; {* 运行一个文件并等待其结束} function AppPath: string; {* 应用程序路径} function GetWindowsDir: string; {* 取Windows系统目录} function GetWinTempDir: string; {* 取临时文件目录} function AddDirSuffix(Dir: string): string; {* 目录尾加'\'修正} function MakePath(Dir: string): string; {* 目录尾加'\'修正} function IsFileInUse(FName: string): Boolean; {* 判断文件是否正在使用} function GetFileSize(FileName: string): Integer; {* 取文件长度} function SetFileDate(FileName: string; CreationTime, LastWriteTime, LastAccessTime: TFileTime): Boolean; {* 设置文件时间} function GetFileDate(FileName: string; var CreationTime, LastWriteTime, LastAccessTime: TFileTime): Boolean; {* 取文件时间} function FileTimeToLocalSystemTime(FTime: TFileTime): TSystemTime; {* 文件时间转本地时间} function LocalSystemTimeToFileTime(STime: TSystemTime): TFileTime; {* 本地时间转文件时间} function GetFileIcon(FileName: string; var Icon: TIcon): Boolean; {* 取得与文件相关的图标,成功则返回True} function CreateBakFile(FileName, Ext: string): Boolean; {* 创建备份文件} function Deltree(Dir: string): Boolean; {* 删除整个目录} function GetDirFiles(Dir: string): Integer; {* 取文件夹文件数} type TFindCallBack = procedure(const FileName: string; const Info: TSearchRec; var Abort: Boolean); {* 查找指定目录下文件的回调函数} procedure FindFile(const Path: string; const FileName: string = '*.*'; Proc: TFindCallBack = nil; bSub: Boolean = True; const bMsg: Boolean = True); {* 查找指定目录下文件} function OpenWith(const FileName: string): Integer; {* 文件打开方式} //----------------------------------------------------------------------------// //扩展的字符串操作函数 // //----------------------------------------------------------------------------// function InStr(const sShort: string; const sLong: string): Boolean; {* 判断s1是否包含在s2中} function IntToStrEx(Value: Integer; Len: Integer; FillChar: Char = '0'): string; {* 扩展整数转字符串函数} function IntToStrSp(Value: Integer; SpLen: Integer = 3; Sp: Char = ','): string; {* 带分隔符的整数-字符转换} function ByteToBin(Value: Byte): string; {* 字节转二进制串} function StrRight(Str: string; Len: Integer): string; {* 返回字符串右边的字符} function StrLeft(Str: string; Len: Integer): string; {* 返回字符串左边的字符} function Spc(Len: Integer): string; {* 返回空格串} procedure SwapStr(var s1, s2: string); {* 交换字串} function LinesToStr(const Lines: string): string; {* 多行文本转单行(换行符转'\n')} function StrToLines(const Str: string): string; {* 单行文本转多行('\n'转换行符)} //----------------------------------------------------------------------------// //扩展的对话框函数 // //----------------------------------------------------------------------------// procedure InfoDlg(Mess: string; Caption: string = SCnInformation; Flags: Integer = MB_OK + MB_ICONINFORMATION); {* 显示提示窗口} function InfoOk(Mess: string; Caption: string = SCnInformation): Boolean; {* 显示提示确认窗口} procedure ErrorDlg(Mess: string; Caption: string = SCnError); {* 显示错误窗口} procedure WarningDlg(Mess: string; Caption: string = SCnWarning); {* 显示警告窗口} function QueryDlg(Mess: string; Caption: string = SCnInformation): Boolean; {* 显示查询是否窗口} //----------------------------------------------------------------------------// //扩展日期时间操作函数 // //----------------------------------------------------------------------------// function GetYear(Date: TDate): Integer; {* 取日期年份分量} function GetMonth(Date: TDate): Integer; {* 取日期月份分量} function GetDay(Date: TDate): Integer; {* 取日期天数分量} function GetHour(Time: TTime): Integer; {* 取时间小时分量} function GetMinute(Time: TTime): Integer; {* 取时间分钟分量} function GetSecond(Time: TTime): Integer; {* 取时间秒分量} function GetMSecond(Time: TTime): Integer; {* 取时间毫秒分量} //----------------------------------------------------------------------------// //位操作函数 // //----------------------------------------------------------------------------// type TByteBit = 0..7; {* Byte类型位数范围} TWordBit = 0..15; {* Word类型位数范围} TDWordBit = 0..31; {* DWord类型位数范围} procedure SetBit(var Value: Byte; Bit: TByteBit; IsSet: Boolean); overload; {* 设置二进制位} procedure SetBit(var Value: WORD; Bit: TWordBit; IsSet: Boolean); overload; {* 设置二进制位} procedure SetBit(var Value: DWORD; Bit: TDWordBit; IsSet: Boolean); overload; {* 设置二进制位} function GetBit(Value: Byte; Bit: TByteBit): Boolean; overload; {* 取二进制位} function GetBit(Value: WORD; Bit: TWordBit): Boolean; overload; {* 取二进制位} function GetBit(Value: DWORD; Bit: TDWordBit): Boolean; overload; {* 取二进制位} //----------------------------------------------------------------------------// //系统功能函数 // //----------------------------------------------------------------------------// procedure MoveMouseIntoControl(AWinControl: TControl); {* 移动鼠标到控件} function DynamicResolution(x, y: WORD): Boolean; {* 动态设置分辨率} procedure StayOnTop(Handle: HWND; OnTop: Boolean); {* 窗口最上方显示} procedure SetHidden(Hide: Boolean); {* 设置程序是否出现在任务栏} procedure SetTaskBarVisible(Visible: Boolean); {* 设置任务栏是否可见} procedure SetDesktopVisible(Visible: Boolean); {* 设置桌面是否可见} procedure BeginWait; {* 显示等待光标} procedure EndWait; {* 结束等待光标} function CheckWindows9598: Boolean; {* 检测是否Win95/98平台} //----------------------------------------------------------------------------// //其它过程 // //----------------------------------------------------------------------------// function TrimInt(Value, Min, Max: Integer): Integer; overload; {* 输出限制在Min..Max之间} function IntToByte(Value: Integer): Byte; overload; {* 输出限制在0..255之间} function InBound(Value: Integer; Min, Max: Integer): Boolean; {* 判断整数Value是否在Min和Max之间} procedure CnSwap(var A, B: Byte); overload; {* 交换两个数} procedure CnSwap(var A, B: Integer); overload; {* 交换两个数} procedure CnSwap(var A, B: Single); overload; {* 交换两个数} procedure CnSwap(var A, B: Double); overload; {* 交换两个数} function RectEqu(Rect1, Rect2: TRect): Boolean; {* 比较两个Rect是否相等} procedure DeRect(Rect: TRect; var x, y, Width, Height: Integer); {* 分解一个TRect为左上角坐标x, y和宽度Width、高度Height} function EnSize(cx, cy: Integer): TSize; {* 返回一个TSize类型} function RectWidth(Rect: TRect): Integer; {* 计算TRect的宽度} function RectHeight(Rect: TRect): Integer; {* 计算TRect的高度} procedure Delay(const uDelay: DWORD); {* 延时} procedure BeepEx(const Freq: WORD = 1200; const Delay: WORD = 1); {* 在Win9X下让喇叭发声} procedure ShowLastError; {* 显示Win32 Api运行结果信息} function GetHzPy(const AHzStr: string): string; {* 取汉字的拼音} function SoundCardExist: Boolean; {* 声卡是否存在}
ESC:显示或隐含扩展输入框 F1: 显现帮助窗口 ESC:关闭帮助窗口 C: 清输入框和输出值 AU:所见即得计算值 (hd:关闭所见即得功能) MC:保留 M+: 累加累减寄存器 (鼠标右击转换累加或累减) Mn:寄存器,可以存储十组数据 (在Mn状态下,空格清空输入框, 拖曳数据,自动保存->M0~M9) (在M0~M9状态下,空格清空输入 框,回车,自动清除->Mn) ≈≈扩展部分≈≈ 复原: 表达式宽(685)、显示宽度(14)、 小数位数(6)复原 以及所有数据初始化 表达式宽: 表达式宽度:扩展输入表达式的宽度 显示宽度:输入输出数字精度 位数:指定输出小数位数 (超出部分截断) 调色板:$000000~$ffffff,BGR (':'左右分别是底色和文字本色) 进制转换: toHex:输入十进制,输出十六进制 toBin:输入十进制,输出二进制 toDec:$输入十六进制,输出十进制 toDec:b输入二进制,输出十进制 数学公式: mod:AmodB(得余数。输入A、B为十进 制,输出十进制) div:AdivB(A整除B,得整数。输入A、 B为十进制,输出十进制) X^:A的B次方(2X^3=8) 2X^:2的B次方(2X^3=8) logN:X^的逆函数(8logN2=3) logN2:2X^的逆函数(8logN2=3) 逻辑运算: (and):求与 (or):求或 (not):求非 (Xor):求异或(相异为1,相同为0) 转换函数: sin()、cos()、tg(): exp():eX^A(e=2.7182818284 eX^1) ln():exp()的逆函数 Char():输入字符,输出ASCII对应码 (Char(a)=97) Byte():输入ASCII对应码,输出字符 (Byte(30)='0') 使用技巧: 各输入框支持鼠标拖曳功能,用鼠标 划过选定复制内容,进行拖曳。放落后 落点在光标所在处 delphi 源码开放

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值