0x80

来源:互联网 发布:妙味课堂vue.js百度云 编辑:程序博客网 时间:2024/04/27 19:00

0x是C语言中16进制数的表示方法。


0x80等于十进制的128


字符在计算机中以其ASCII码方式表示, 其长度为1个字节, 有符号字符型数取值范围为-128~127, 无符号字符型数到值范围是0~255。因此在Turbo C语言中,字符型数据在操作时将按整型数处理, 如果某个变量定义成char, 则表明该变量是有符号的, 即它将转换成有符号的整型数。

Turbo C中规定对ASCII码值大于0x80的字符将被认为是负数。例如ASCII 值为0x8c的字符, 定义成char时, 被转换成十六进制的整数0xff8c 。 这是因当ASCII码值大于0x80时, 该字节的最高位为1, 计算机会认为该数为负数, 对于0x8c表示的数实际上是-74(8c的各位取反再加1), 而-74 转换成两字节整型数并在计算机中表示时就是0xff8c( 对0074 各位取反再加1) 。 因此只有定义为unsigned char 0x8c转换成整型数时才是8c。这一点在处理大于0x80的ASCII码字符时(例如汉字码)要特别注意。一般汉字均定义为unsigned char

 
 
判断汉字
 int   main()   
    
  char   s[]="china   中国";   
  int   i=0;   
  while(s[i]!=0)   
    
  if(s[i]     0x80)   
    
      cout<<"This   is   Chinese   character"<<endl;   
      i++;   
    
  else   
      cout<<"single   character"<<endl;   
  i++;   
      
  }

 

 

原文:http://blog.sina.com.cn/s/blog_52543ad50100ak0j.html

原创粉丝点击