国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

c語言中十六進制轉二進制顯示的實現方法

2020-02-24 14:30:13
字體:
來源:轉載
供稿:網友

c語言中如何實現十六進制轉二進制顯示?相信不少小伙伴們都被這個難題困擾過,那么我們現在將帶著這個疑問去看看c語言中十六進制轉二進制顯示的實現方法吧。


//======================================

?

//輸出格式: hex2bin 5e.

//得到: 0101 1110

//======================================

#include <stdio.h>
#include <limits.h>

char *bitstr(char *, void const *, size_t);

int main(int argc, char **argv)
{

?? unsigned char value;
?? char *pointer;
?? char ebits[CHAR_BIT * sizeof value + 1];

??
?? value = 0;

?? for (pointer = argv[1]; *pointer; ++pointer) {
???? value <<= 4;
???? switch (*pointer) {
??????? case 'a':
??????? case 'A':
??????????? value += 0xa;
??????????? break;
??????? case 'b':
??????? case 'B':
??????????? value += 0xb;
??????????? break;
??????? case 'c':
??????? case 'C':
??????????? value += 0xc;
??????????? break;
??????? case 'd':
??????? case 'D':
??????????? value += 0xd;
??????????? break;
??????? case 'e':
??????? case 'E':
??????????? value += 0xe;
??????????? break;
??????? case 'f':
??????? case 'F':
??????????? value += 0xf;
??????????? break;
??????? default:
??????????? value += *pointer - '0';
??????????? break;
? }
?? }
?? bitstr(ebits, &value, sizeof value);
?? printf("The binary representation of 0x%s is ", argv[1]);

?? for (pointer = ebits, value = 0; *pointer != '/0'; ++pointer) {
??? if(value > 3) {
?????????? value = 0;
???? putchar(' ');
?????????? putchar(*pointer);
??? }
??? else {
???? value++;
??????? putchar(*pointer);
??? }
?? }
??

?? return 0;
}


char *bitstr(char *str, const void *obj, size_t n)
{
?? unsigned char mask;
?? const unsigned char *byte = obj;
?? char *const ptr = str;

?? while (n--) {
????? mask = ((unsigned char)-1 >> 1) + 1;
????? do {
???????? *str++ = (char)(mask & byte[n] ? '1' : '0');
???????? mask >>= 1;
????? } while (mask);
?? }
?? *str = '/0';
?? return ptr;
}

關于c語言中十六進制轉二進制顯示的實現方法將為大家介紹到這里啦,如果你還有不懂的地方就請留言給小編吧。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 福海县| 北辰区| 崇阳县| 原平市| 仁怀市| 富锦市| 洪雅县| 西充县| 姜堰市| 八宿县| 武穴市| 化德县| 社旗县| 桐梓县| 葫芦岛市| 肃北| 台东市| 安乡县| 加查县| 上杭县| 岳池县| 襄樊市| 合阳县| 彝良县| 汝阳县| 韩城市| 抚松县| 峨山| 衡阳县| 平凉市| 南通市| 砀山县| 陈巴尔虎旗| 板桥市| 青海省| 临桂县| 云阳县| 余庆县| 涞源县| 巴楚县| 溆浦县|