1.嵌入式问题
嵌入式问题
1.us1为 us2为 首先us1和us2是点阵代码无符号形短整数,而你赋值的屏源时候用的是负数,无符号形和普通短整数都是码点2个字节有符号形用的是补码表示的,而无符号形直接用无符号的阵屏易语言云端源码原码,范围是点阵代码0-(原码是一个数直接化成二进制的数,没有符号第一位是屏源符号位。补码是码点源码的每位取反再加1,计算机中用补码主要是阵屏为了让硬件设计方便,这个是点阵代码基础,所以不多说了)所以你的屏源负数先变成补码-=,把-的码点庄家监控源码补码存到内存中,而你的阵屏声明是无符号形短整数,所以使用它的点阵代码时候就把它当无符号型整数的。unsigned是屏源无符号的意思表示正整数,short int可以表示负数,码点用补码表示。分享网站 源码
2。 *=
3。if(si1<0)就是说如果si1是负数就执行下面的一个语句,或一个花括号里面的所有语句,由于你的源码之家qinggeltsi1是-就会执行{ ui-=(*(unsigned short *)&si2&(~(1L<<)))<<;cout<<ui<<endl;}如果你在这句用的是us1,由于us1是无符号型整数,所以大于等于0,所以不会执行下面这句
4。&是取地址符号,(unsigned short *)表示把取到的游戏测试 源码地址强制转换成指向无符号型整数的指针,再用*运算符取出指针指向的内容。其实这句话就是把si2转换成一个临时的unsigned short 型变量
5.1L是表示长整形的1,~(1L<<)表示长整形的1左移位,再对他按位取反结果是
6。先对si2求地址指针,并把求到的地址指针转化成无符号型整数,就是说吧si2化成临时的无符号型整数,再求~(1L<<)把得到的结果和si2的无符号型整数相与(&在位运算中是与的意思),得到的结果最后在左移位。
7。这个程序并没有什么公式,如果你能把我前面的分析看懂,就会知道这个程序其实是考你对C(虽然是C++的文件,但是基本是C的内容)中基本的一些数据转换的概念。因为这个程序在实际中根本没做什么操作,你问了这么多问题说明你对C不是很熟悉,如果你要学C的话我推荐你学谭浩强的《C程序设计》很简单也很全面,网上还有电子书,最后还有对C++的介绍。
希望我打这么多字能够帮到你。
希望能解决您的问题。