C++ 整型长度的获取 不同的系统

不同的系统中,C++整型变量中的长度位数是不同的,通常,在老式的IBM PC中,int 的位数为16位(与short相同),而在WINDOWS XP,Win7,vax等很多其他的微型计算机中,为32位(与long 相同)。这点在迁移别人的程序中要注意!!!看别人用的什么系统,自己用的什么系统!

例如,如果获取来自64位win10系统中整型数据的长度,代码如下:

#include<iostream>
using namespace std;
#include<climits>
int main()
{   
    int n_int = INT_MAX; 
    short n_short = SHRT_MAX;
    long n_long = LONG_MAX;
    long long n_llong = LLONG_MAX;

    cout << "int is " << sizeof (n_int) << " bytes." << endl;
    cout << "short is " << sizeof n_short << " bytes."<< endl;
    cout << "long is " << sizeof n_long << " bytes." << endl;
    cout << "long long is " << sizeof n_llong << " bytes." << endl;
    cout << endl;
    
    cout << "Maxium values :" << endl;
    cout << "int: " << n_int << endl;
    cout << "short: " << n_short << endl;
    cout << "long: " << n_long << endl;
    cout << "long long: " << n_llong << endl;
    
    cout << "Minimum values :" << INT_MIN<< endl;
    cout << "Bits per byte = " << CHAR_BIT << endl;
    cin.get();
    return 0;
}  

其中,头文件包含了关于整型限制的信息,具体的说,他定义了各种限制的符号名称。如INT_MAX表示int 的最大取值,CHAR_BIT为字节的位数。

下图为程序的运行结果:

 

转载于:https://www.cnblogs.com/carlber/p/9839856.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将一个二进制字符串转换为无符号整,首先需要明确二进制字符串的表示方式。二进制是一种由0和1组成的数字系统,每一位表示一个2的幂次。例如,二进制数1010表示10,其中第一位表示2^3,第二位表示2^2,第三位表示2^1,第四位表示2^0。因此,可以通过对每位进行计算,并将结果相加得到最终的无符号整值。 要将二进制字符串转换为无符号整,可以使用以下步骤: 1. 首先,获取二进制字符串的长度。 2. 创建一个变量,用于存储最终的无符号整值,初始值设为0。 3. 从左到右遍历二进制字符串,从最高位开始。 4. 对于每一位,将其与相应的权值相乘。 5. 将乘积与无符号整值累加,得到新的无符号整值。 6. 继续遍历下一位。 7. 重复步骤4至6,直到遍历完所有位。 8. 返回最终的无符号整值。 举例来说,假设有一个二进制字符串"1010",按照上述步骤进行转换: 1. 字符串长度为4。 2. 创建变量unsigned_value,并将其设为0。 3. 遍历字符串,由左至右。 4. 第一位是1,与2^3相乘得到8。 5. 将乘积8与unsigned_value累加,得到新的unsigned_value为8。 6. 继续遍历下一位。 7. 第二位是0,与2^2相乘得到0。 8. 将乘积0与unsigned_value累加,unsigned_value保持不变。 9. 继续遍历下一位。 10. 第三位是1,与2^1相乘得到2。 11. 将乘积2与unsigned_value累加,得到新的unsigned_value为10。 12. 继续遍历下一位。 13. 第四位是0,与2^0相乘得到0。 14. 将乘积0与unsigned_value累加,unsigned_value保持不变。 15. 遍历完所有位,返回最终的unsigned_value为10。 通过按照上述步骤进行计算,即可将二进制字符串转换为无符号整

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值