位掩码的大小有实际限制吗?

位掩码的大小有实际限制吗?,第1张

位掩码的大小有实际限制吗?

在我脑海中,我写了一个

set_bit
and
get_bit
函数,它可以使用字节数组和数组中的位偏移量,并使用一些位扭曲来设置/获取数组中的适当位。像这样的东西(用C语言编写,但希望您能理解):

// sets the n-th bit in |bytes|. num_bytes is the number of bytes in the array// result is 0 on success, non-zero on failure (offset out-of-bounds)int set_bit(char* bytes, unsigned long num_bytes, unsigned long offset){  // make sure offset is valid  if(offset < 0 || offset > (num_bytes<<3)-1) { return -1; }  //set the right bit  bytes[offset >> 3] |= (1 << (offset & 0x7));  return 0; //success }//gets the n-th bit in |bytes|. num_bytes is the number of bytes in the array// returns (-1) on error, 0 if bit is "off", positive number if "on"int get_bit(char* bytes, unsigned long num_bytes, unsigned long offset){  // make sure offset is valid  if(offset < 0 || offset > (num_bytes<<3)-1) { return -1; }  //get the right bit  return (bytes[offset >> 3] & (1 << (offset & 0x7));}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5675617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存