mokongking

c语言<<,>>应用理解

不讲原理,左移低位补零,右移高位补零。在使用中总结的规律,在进制转换中遇到10机制的左移或右移,可以将变量乘以2的n次方或者除以2的n次方,左乘,右除,但是乘除要考虑高位的数据溢出,低位数据的丢失。例如十进制数5右移1位就会造成数据的丢失因为5除以2为2.5 ,0.5就会丢失,在二进制数中显示:5的二进制是101右移以为就是10就是10进制数2,高位溢出的情况就是例如定义了一个int a = 48,uint8_t a = 48,把这两个数字同时左移3位,int类型的a经过转移三位就是384 ,而无符号8位int类型就是128.因为int类型占4字节,总共是32位最高位是32位48左移三位并不会溢出,而uint8_t就会造成高位溢出导致两结果不同。若把uint8_t换成16位或者32位结果就可以一样

 

posted on   虎啸岳林  阅读(36)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用

导航

统计信息

点击右上角即可分享
微信分享提示