C 确定两个无符号int32的大小差(以字节为单位)

C 确定两个无符号int32的大小差(以字节为单位),c,C,所以我有两个无符号的32位整数,我需要找出它们之间的差异,以字节为单位 基本上,可以通过移位位并确定设置了多少位并比较这两个值来解决该任务 我该怎么做呢?下面是一个函数,用于计算一个无符号整数需要多少字节。只需在这两个数字上使用它,然后计算差值 编辑:感谢埃里克·波斯特希尔对我的马虎态度的耐心 #include <limits.h> int ByteCount(unsigned int n) { int result = 0; while (n != 0)

所以我有两个无符号的32位整数,我需要找出它们之间的差异,以字节为单位

基本上,可以通过移位位并确定设置了多少位并比较这两个值来解决该任务


我该怎么做呢?

下面是一个函数,用于计算一个无符号整数需要多少字节。只需在这两个数字上使用它,然后计算差值

编辑:感谢埃里克·波斯特希尔对我的马虎态度的耐心

#include <limits.h>

int ByteCount(unsigned int n)
{
    int result = 0;
    
    while (n != 0) {
        result++;
        n >>= CHAR_BIT;
    }
   return result;
}
#包括
整数字节计数(无符号整数n)
{
int结果=0;
而(n!=0){
结果++;
n>>=字符位;
}
返回结果;
}

不会有大小差异,因为32位整数是32位。啊,“以字节为单位”。。。所以你想考虑非8位字节?这就像是看两个整数的VLQ差异。什么是VLQ差异?1。实现一个函数,该函数接受一个“无符号32位整数”,并返回其“大小”2。使用它可以得到两个整数3的“大小”。确定它们之间的差异