0

我需要对 MAC 地址进行一些操作,编码为 48 位,但format会截断结果:

format 0x%x 0x100000000 ;# --> 0x0

是否可以为此做点什么,或者我必须调整我的代码以使用较小的数字?

4

1 回答 1

3

在 Tcl 8.4 中,只需将大小修饰符l赋予format. 这样,您告诉format将值解释为(至少)64 位数字(大小相同wide(),取决​​于机器):

format 0x%lx 0x100000000

(请注意,它是小写的el字母,而不是一位数字。)

在 Tcl 8.5 及更高版本中,整数数学以任意精度完成,并且ll大小修饰符告诉format不要截断该值:

format 0x%llx 0x100000000

(同样,它们是两个小写的el字母,而不是两个一个数字。)

于 2013-09-17T06:03:38.877 回答