32位有符号整型举例

十进制:1

二进制:0(符号位,0为正,1为负)0000000000000000000000000000001

十进制:0

二进制:0(符号位,0为正,1为负)0000000000000000000000000000000

十进制:-0

二进制:0(符号位,0为正,1为负)0000000000000000000000000000000

十进制:-2147483648

二进制:1(符号位,0为正,1为负)0000000000000000000000000000000

十进制:-2147483647

二进制:1(符号位,0为正,1为负)0000000000000000000000000000001

 

 

由有符号整型转换为无符号整型,其32位机器码不变。

 

#include<iostream>
using namespace std;
int main (void)
{
    int i=-1;
    unsigned j,k=-1;
   
    j=i;
    cout<<j<<endl;   //输出结果是4294967295
    cout<<k;              //输出结果是4294967295
    getchar();
    }

 

 

对于printf函数来说,

%d,

1.查看32位是否是0或者1

2.如果是1,31位求补码算出;如果是0,31位直接算出。

 

%u

32位全部直接算出

 

%f

float 取出32位

double 取出64位

long double 取出96位

 

%c

char 取出8位 按照ACSII对照输出

 

总结:只与类型的字节和字节里面储存的数据有关。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
将一个二进制字符串转换为无符号整型,首先需要明确二进制字符串的表示方式。二进制是一种由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。 通过按照上述步骤进行计算,即可将二进制字符串转换为无符号整型

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值