gpt4 book ai didi

c++ - 如何为给定的数据类型创建掩码?

转载 作者:行者123 更新时间:2023-11-30 17:40:04 24 4
gpt4 key购买 nike

我有一个整数,其 sizeof 将在运行时确定。现在,我想根据其大小使用它进行 mask 。

例如,如果 int 的大小为 2 个字节,则掩码值为 0xFF。如果整数的大小是4字节,那么掩码值为0xFFFF。我该怎么做?另外,最后我想从数字中提取最重要的半字节。我怎样才能以聪明的方式做到这一点?

最佳答案

//假设你采用signed int

0XFFFFFFFF == -1(在 4 字节 int 机器中)

0XFFFF == -1(在 2byte int 机器中)

0XFF == -1(在不再存在的机器中的 1 个字节中)

因此在运行时,即使大小增加,您的变量也会分配给 -1。

计算 MSB x 作为您的号码

if( ( (0 | 1) << sizeof(int) & x) > 0)
//MSB is 1
else
// MSB is 0

关于c++ - 如何为给定的数据类型创建掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21620615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com