位移运算与底层数据位移方向可能不一致

  • 小端字节序下,int型的127对应的储存在磁盘内的底层二进制数据是0x7f000000,而在我们逻辑里是0x0000007f,当对127右移8位时,底层二进制数据结果为0x00000000,逻辑上数据右移了8位,但底层二进制数据实际上左移了8位
  • 大端字节序下,int型的127对应的储存在磁盘内的底层二进制数据是0x0000007f,而在我们逻辑里是0x0000007f,当对127右移8位时,底层二进制数据结果为0x00000000,逻辑上数据右移了8位,而底层二进制数据实际上也右移了8位

综上所述,小端字节序下,底层数据的实际位移方向与逻辑上数据的位移方向相反,大端字节序下则相同

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 数据类型的底层表示 在C语言中,不同数据类型的底层表示方式是不同的。例如,整型数据(int)在内存中通常被表示为4个字节的二进制数,而浮点型数据(float)则有特定的IEEE 754 标准表示方式。在进行数据存储、操作和传递时,需要考虑数据类型的底层表示方式,以确保正确的结果。 2. 数据转换 数据转换是指将一个数据类型转换为另一个数据类型的过程。在C语言中,数据转换可以分为隐式转换和显式转换两种方式。 隐式转换是指在表达式中,由较小的数据类型自动转换为较大的数据类型。例如,将一个整型变量赋值给一个浮点型变量时,整型变量会自动转换为浮点型变量。 显式转换是指通过强制类型转换的方式将一个数据类型转换为另一个数据类型。例如,将一个浮点型变量强制转换为整型变量时,需要使用(int)或者其他强制类型转换运算符。 3. 移位 移位是指将一个二进制数向左或向右移动一定的位数。在C语言中,移位运算符包括左移运算符(<<)和右移运算符(>>),用于对整型数据进行位移操作。左移运算符将一个整型数向左移动一定的位数,右移运算符将一个整型数向右移动一定的位数。 移位操作可以用于对数据进行位运算,例如将一个整型数的某个位设置为1或者0,或者将多个整型数的特定位组合在一起。移位操作也可以用于优化程序性能,例如用移位操作代替乘除运算

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值