首页

欢迎

 

Welcome

欢迎来到这里, 这是一个学习数学、讨论数学的网站.

转到问题

请输入问题号, 例如: 2512

IMAGINE, THINK, and DO
How to be a scientist, mathematician and an engineer, all in one?
--- S. Muthu Muthukrishnan

Local Notes

Local Notes 是一款 Windows 下的笔记系统.

Local Notes 下载

Sowya

Sowya 是一款运行于 Windows 下的计算软件.

详情

下载 Sowya.7z (包含最新版的 Sowya.exe and SowyaApp.exe)


注: 自 v0.550 开始, Calculator 更名为 Sowya. [Sowya] 是吴语中数学的发音, 可在 cn.bing.com/translator 中输入 Sowya, 听其英语发音或法语发音.





注册

欢迎注册, 您的参与将会促进数学交流. 注册

在注册之前, 或许您想先试用一下. 测试帐号: usertest 密码: usertest. 请不要更改密码.


我制作的 slides

Problem

随机显示问题

Problèmes d'affichage aléatoires

计算数学 >> 数据结构
Questions in category: 数据结构 (Data Structure).

clox 中的一些值的设定

Posted by haifeng on 2023-06-03 08:03:31 last update 2023-06-03 11:18:02 | Answers (0)


>> hex2decimal(0x7ffc000000000000)
out> 9222246136947933184

>> decimal2binary(9222246136947933184)
out> 111111111111100000000000000000000000000000000000000000000000000

------------------------

 

0111,1111,1111,1100;00000000,00000000;00000000,00000000;00000000,00000000


定义符号位 SIGN_BIT 为64位无符号整数0x8000000000000000

#define SIGN_BIT ((uint64_t)0x8000000000000000)

#define QNAN     ((uint64_t)0x7ffc000000000000)

定义 QNAN 是64位无符号整数

判断是否是数

#define IS_NUMBER(value)    (((value) & QNAN) != QNAN)

即凡是不以0x7ffc开头的都不是NUBMER,  以0x7ffc开头的都是obj

//     QNAN=0x7ffc000000000000
//TAG_FALSE=0x0000000000000010
// TAG_TRUE=0x0000000000000011
//FALSE_VAL=0x7ffc000000000010
// TRUE_VAL=0x7ffc000000000011

 

(SIGN_BIT | QNAN)

1111,1111,1111,1100;00000000,00000000;00000000,00000000;00000000,00000000

取反

0000,0000,0000,0011;11111111,11111111,11111111,11111111,11111111,11111111

#define AS_OBJ(value) \
    ((Obj*)(uintptr_t)((value) & ~(SIGN_BIT | QNAN)))

AS_OBJ() 函数就是将 value 和上面的值  0x3ffffffffffff 作与运算