www.3112.net > 无符号十六进制数printF

无符号十六进制数printF

我们先了解一下知识 左移A次 (后面补0,补一次0放大两倍,乘以2的意思)1010 0100 0010 1101 左移8次1010 0100 0010 1101 0000 0000 右移K次 (从右往左消数字,直接砍掉,有去掉后面几位的意思,也可以说除以2) 比如1010 0100

c='\0x41';

%x表示按16进制输出;int a = 16;%02x:输出10;%03x:输出:010;%04x:输出:0010;

#include <stdio.h> void main() { unsigned int m=0; unsigned int n=0; unsigned int uiOut=0; printf("请输入两个无符号十六进制数!!!\n"); scanf("%x%x",&m,&n); uiOut = m << n; printf("%x",uiOut); } 验证

#include &lt;stdio.h&gt;void intToHex(int n, char* s){int temp = 0; 一个局部变量,保存变换的中间结果char t[128]; 临时变量,记录变换结果int index = 0; 记录目前操作字符串的当前位置,开始为0while(n) 如果n不等于0,则继续循环{temp = n

#includeint main(void){ int x = 16; printf("0x%x", x); return 0;}看到没有printf("0x%x", x); 这里多了个0x0x会原样输出的 而%x是x输出的个是控制符号 0x就不属于格式输出符号

十六进制就是比十六小的数,所以要求余数,如:给出一个数100,利用辗转相除法求,第一次余数为100%16=4,然后100/16=6,第二次余数为6%16=6;然后6/16=0,运算结束.所以100的十六进制结果为64;而十六进制到了9之后便用字母表示,所以在求余数的过程中,先记录余数,输出时用数组输出.如:设成c[2]={11,12};输出时:d=c[0]=11;b[c[0]]=b[d]=b[11]=A;d=c[1];b[c[1]]=b[d]=b[12]=B.实在不懂的话,可以看一下十进制变成二进制的过程,转换进制的原理都是差不多的..

0xFFFF=111111111111B 二进制这个是2的16个次方减1 输出结果是65565

%表示格式化字符串输出目前printf支持以下格式的输出,例如:printf("%c",a);输出单个字符.printf("%d",a);输出十进制整数.printf("%f",a);输出十进制浮点数.printf("%o",a);输出八进制数.printf("%s",a);输出字符串.printf("%u",a);输出无符号十进制数.printf("%x",a);输出十六进制数.

可以再通过强制类型转换为unsigned short

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com